wait、sleep、yield差异

wait、sleep、yield区别

wait:

1、属于Object的本地方法。

2、暂停当前线程,并释放锁。

3、调用notify()或notifyAll()方法唤醒线程。

sleep:

1、Thread类的静态方法。

2、当前线程休眠,但不释放锁。

3、其他线程可以继续执行,无论该线程优先级高与否。

4、休眠一段时间后,自动执行。

yield:

1、Thread类的静态方法。

2、暗示具有相同优先级的其他线程可以使用CPU,运行。

3、没有任何机制保证当前线程会暂停运行并让出CPU。