主要关注点是等待/通知机制
-
wait() 第一在当前代码处停止执行 第二将线程置入"预执行队列"中,直达接到通知或者中断
-
wait()方法条件
- 需要先获得锁
- wait()会释放锁
- 遇到interrupt()会出现InterruptedException,并且释放锁
-
notify()
- 需要先获得锁
- 通知那些可能等待该对象的对象锁的其他线程,有多个wait状态的线程,随机挑选一个。
- 不会立刻释放锁,需要等到将线程执行完成,退出synchroized
-
领悟 阻塞是需要唤醒的进入到就绪然后让cpu去调度
-
wait(long) 等待某一时间内是否有线程对锁进行唤醒,如果超出时间则自动唤醒。
-
生产者/消费者模式