栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

生产者消费者模型

生产者消费者模型

生产者消费者模型设计
  • 生产者需要安全地将数据交给消费者
  • 当生产者和消费者在不同的线程运行时,两者的处理速度差异会有问题。生产者消费者模型用于消除线程间处理速度的差异带来的问题
  • 在该模式中,生产者和消费者会有多个,当生产者和消费者只有一个时,成为Pipe(管道)模式
  • 线程协调和互斥问题(保护哪些数据),线程的协调需要考虑“放在中间的东西”,线程的互斥需要考虑保护哪些东西,为了让线程协调进行,必须进行互斥处理,以防止更多的内容被破坏,线程的互斥处理时为了线程的协调运行而执行的

    为什么要有Channel?
  • Consumer想要获取Data,通常是因为想要使用Data来执行某些处理,如果Producer直接调用Consumer的方法,执行处理的就不是Consumer的线程,而是Producer的线程了。这样,异步处理就变成了同步处理,效率就会降低
  • 同时承担安全守护责任,执行线程间的互斥处理,确保Producer产生的Data能够传递给Consumer

Channel的选择

  • 队列–先生产先消费
  1. synchronzied、wait和notifyAll的使用
  2. ReentrantLock和Condition组合
  3. 使用BlockingQueue
  • 栈–先生产后消费
  • 优先队列
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/582296.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号