线程通信V
/**
* 1. 内容是关于:线程通信。
* 2. 线程通信涉及到三个方法:
* wait()、notify()、notifyAll()
* 3. 以上三个方法都是Object类的方法。
* 4. 其中wait()方法重载了三个:
* wait():调用此方法,线程进入“等待状态”
* wait(毫秒):调用此方法,线程进入“超时等待状态”
* wait(毫秒,纳秒):调用此方法,线程进入“超时等待状态”
*
* 5. 调用wait方法和notify相关方法的,不是通过线程对象去调用,而是通过共享对象去调用。
*
* 6. 例如调用了:obj.wait(),什么效果?
* obj是多线程共享的对象。
* 当调用了obj.wait()之后,在obj对象上活跃的所有线程进入无期限等待。直到调用了该共享对象的notify方法进行了唤醒。
* 而且唤醒后,会接着上一次调用wait()方法的位置继续向下执行。
*/
7.调用wait()方法后,会释放锁
* 8. 关于notify和notifyAll方法:
* 共享对象.notify(); 调用之后效果是什么?唤醒优先级最高的等待线程。如果优先级一样,则随机唤醒一个。
* 共享对象.notifyAll(); 调用之后效果是什么?唤醒所有在该共享对象上等待的线程。