生产者消费者设计模式.docVIP

  • 14
  • 0
  • 约1.45万字
  • 约 13页
  • 2017-12-19 发布于河南
  • 举报
生产者消费者设计模式

基于C++11实现生产者消费者 本文将综合运用 C++11 中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——生产者消费者模式,并给出完整的解决方案。生产者消费者问题是多线程并发中一个非常经典的问题,相信学过操作系统课程的同学都清楚这个问题的根源。本文将就四种情况分析并介绍生产者和消费者问题,它们分别是:单生产者-单消费者模式,单生产者-多消费者模式,多生产者-单消费者模式,多生产者-多消费者模式,我会给出四种情况下的 C++11 并发解决方案,如果文中出现了错误或者你对代码有异议,欢迎交流。 单生产者-单消费者模式 顾名思义,单生产者-单消费者模式中只有一个生产者和一个消费者,生产者不停地往产品库中放入产品,消费者则从产品库中取走产品,产品库容积有限制,只能容纳一定数目的产品,如果生产者生产产品的速度过快,则需要等待消费者取走产品之后,产品库不为空才能继续往产品库中放置新的产品,相反,如果消费者取走产品的速度过快,则可能面临产品库中没有产品可使用的情况,此时需要等待生产者放入一个产品后,消费者才能继续工作。C++11实现单生产者单消费者模式的代码如下: #include unistd.h #include cstdlib #include condition_variable #include iostream #include mutex #include

文档评论(0)

1亿VIP精品文档

相关文档