线程的通讯
2021-05-17 06:27
                         标签:个数   唤醒   object类   必须   共享   思路   read   传递   存在    ? 生产者和消费者模式的思路: 线程的通讯 标签:个数   唤醒   object类   必须   共享   思路   read   传递   存在    原文地址:https://www.cnblogs.com/bbbbbbbb1og/p/9747359.html线程的通讯(生产者和消费者)
		  A:生产者	先看是否有数据,有就等待;没有就生产,生产完以后通知消费者来消费数据
		  B:消费者	先看是否有数据,有就消费;没有就等待,通知生产者生产数据
? 线程的通讯需要注意的地方:
		  生产者和消费者表示不同的线程
		  1.生产者和消费者操作的必须是同一个数据
		    实现:	在外界把这个数据创建出来,通过构造方法传递给其他的类。
		  2.由于生产者和消费者操作了同一个数据,因此会出现线程安全问题,我们需要将操作共享数据的多条语句加锁
		    实现:生产者和消费者都需要加锁,而且生产者和消费者加的锁必须是同一把
		  3.生产者和消费者必须存在有 生产后立即消费 的关系
		    实现:通过Java提供的等待唤醒机制解决( wait() 和 notify()、notifyAll())
? wait和notify方法要注意的事项:
		  1.wait方法与notify方法是属于object对象的
		  2.wait方法与notify方法必须要在同步代码块或者是同步函数中才能使用
		  3.wait方法与notify方法必须要由锁对象调用
? 为什么这些方法定义在Object类中而不定义在Thread类中 ?
		  这些方法的调用必须通过锁对象调用,由于锁对象可以是任意对象,所以这些方法必须定义在Object类中。