线程wait()和notify(),notifyall()使线程处于挂起状态 和唤醒线程

名词解释
A.wait():暂停执行、放弃已经获得的锁,进入等待状态;
notify():随机唤醒一个在等待锁的线程;
notfyall():唤醒所有在等待锁的线程,自行抢占cpu资源;

适合使用线程挂起:
等待某些没有就绪的资源

1.如下图所示,使用锁waitObject,则也要用waitObject调wait()和notify&&notifyall()方法
下面的执行结果表明 wait()执行后会立即释放锁waitObject,而suspend则不会有此功效;
thread1执行wait释放锁后thread2也执行wait释放锁,接着最下面的notyfy()唤醒一个等待锁的线程。(thread2不属于等待锁?)

线程wait()和notify(),notifyall()使线程处于挂起状态 和唤醒线程
2.如果上图的notify()换成notiyall()则thread和thread2都会被唤醒,如下图的打印结果

线程wait()和notify(),notifyall()使线程处于挂起状态 和唤醒线程