Java-生产者和消费者案例

线程通信:不同的线程执行不同的任务,如果这些任务有某种关系,线程之间必须能够通信,协调完成工作.

经典的生产者和消费者案例(Producer/Consumer):

分析案例:

1):生产者和消费者应该操作共享的资源(实现方式来做).

2):使用一个或多个线程来表示生产者(Producer).

3):使用一个或多个线程来表示消费者(Consumer).

生产者消费者的示意图:

为什么生产者不直接把数据给消费者,而是先把数据存储到共享资源中,然后,消费者再从共享资源中取出数据,再消费.

在这里体现了面向对象的设计理念:低耦合.

()耦合: 直接使用生产者把肉包子给消费者,那么生产者中得存在消费者的引用,同理,消费者要消费生产者生产的肉包子,消费者中也得存在生产者对象的引用. 例子: 主板和集成显卡.

   ()耦合:使用一个中间对象,屏蔽了生产者和消费者直接的数据交互.  例子:主板和独立显卡.


高(紧)耦合:

//生产者
public class  Producer{
     private  Consumer  con;//消费者对象
}

//消费者
public  class    Consumer{
        private  Producer  pro;//消费者对象
}
低(松)耦合:
//共享资源
public  class ShareResource{
}

//生产者
public class  Producer{
       private  ShareResource  resource;//共享资源对象
}

//消费者
public  class    Consumer{
         private  ShareResource  resource;//共享资源对象
}

版权声明:
作者:yfeer
链接:https://yfeer.com/722.html
来源:个人编程学习网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>