java中线程间的通信
** * 线程间通信 * 多个线程在处理同一资源 ,但是任务却不同 */ 线程间的通信利用了多线程的等待唤醒机制,具体如下
/** * 等待唤醒机制 * <p> * 涉及的方法 * 1.wait(): 让线程处于冻结状态,被wait的线程会被存储到线程池中。 * 2.notify():用于唤醒线程池中的一个线程(任意) * 3.notifyAll():唤醒线程池中的所有线程 * <p> * 这些方法都必须定义在同步 中, * 因为这些方法都是用于操作线程状态的方法,必须要明确到底操作的是哪个锁上的线程 * <p> * <p> * 为什么操作线程的方法 wait notify notifyAll定义在了Object类中 * 因为这些方法是监视器的方法,监视器其实就是锁 * 锁可以是任意的对象 ,任意的对象 调用 的方法一定定义 在Object类中 */ 下面的示例 是 同一资源Resource,通过 输入线程Input输入内容,输出线程Output输出内容![]()
![]()
![]()