核心思想:
wait/notify用例。wait()方法可以使线程进入等待状态,而notify()可以使等待的状态唤醒。这样的同步机制十分适合生产者、消费者模式:消费者消费某个资源,而生产者生产该资源。
1)当该资源缺失时,消费者调用wait()方法进行自我阻塞,等待生产者的生产;
2)生产者生产完毕后调用notify/notifyAll()唤醒消费者进行消费。
生活场景模拟:
以夫妻生活为例:丈夫(生产者)负责赚钱,妻子(消费者)负责花钱。
1)生产者
2)消费者
3)产品仓库(支付宝--钱库)
4)生产者工作线程(丈夫不停的赚钱)
5)消费者消费线程(妻子不停的花钱)
5)开启整个生产-消费工作模式 (开启夫妻生活)
6)测试结果
结语
自己通过一个很平常的生活场景模拟了生产者消费者模式,通俗易懂,如果大家觉得有什么不对的地方,请指正。