多线程并发应用(生产者/消费者)
2013-10-23 22:25
267 查看
1. 多线程并发应用的经典模型:
生产者/消费者模型:
系统中,产生消息的是生产者,处理消息的是消费者,消费者和生产者通过一个缓冲区进行消息传递。生产者产生消息后交到缓冲区,然后通知消费者可以从中取出消息进行处理。消费者处理完这些信息,通知消费者可以继续提供消息。
要实现这个模型,关键是消费者和生产者两个线程的同步。
只有缓冲区有消息时,消费者才能提取消息,只有消息已经被处理,生产者才能产出消息提交到缓冲区。
2.对生产者消费者问题的进一步说明:
这是一个多线程同步问题的经典案例。该问题说的是两个共享固定大小缓冲区的线程在实际运行中出现的问题,也叫做有限缓冲问题。要解决这个问题,必须让生产者在缓冲区写满时就休眠,等待下次消费者消耗缓冲区数据时,再唤醒生产者继续生产数据。同样,消费者进入空的缓冲区也需要暂时休眠来等待生产者写数据。
有待补充。
生产者/消费者模型:
系统中,产生消息的是生产者,处理消息的是消费者,消费者和生产者通过一个缓冲区进行消息传递。生产者产生消息后交到缓冲区,然后通知消费者可以从中取出消息进行处理。消费者处理完这些信息,通知消费者可以继续提供消息。
要实现这个模型,关键是消费者和生产者两个线程的同步。
只有缓冲区有消息时,消费者才能提取消息,只有消息已经被处理,生产者才能产出消息提交到缓冲区。
2.对生产者消费者问题的进一步说明:
这是一个多线程同步问题的经典案例。该问题说的是两个共享固定大小缓冲区的线程在实际运行中出现的问题,也叫做有限缓冲问题。要解决这个问题,必须让生产者在缓冲区写满时就休眠,等待下次消费者消耗缓冲区数据时,再唤醒生产者继续生产数据。同样,消费者进入空的缓冲区也需要暂时休眠来等待生产者写数据。
有待补充。
相关文章推荐
- Java多线程-并发协作(生产者消费者模型)
- java多线程并发协作:生产者消费者模型
- Java多线程---并发协作(生产者消费者模型)
- Java 多线程(二)线程间的通信应用--生产者消费者(未完)
- Linux 系统应用编程——多线程经典问题(生产者-消费者)
- C++11 并发指南九(综合运用: C++11 多线程下生产者消费者模型详解)
- 并发协作:多线程中的生产者与消费者模型
- 生产者消费者问题 这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者
- 多线程应用例子1—消费者,生产者,1个缓存区
- Java多线程-并发协作(生产者消费者模型)
- Java多线程-并发协作(生产者消费者模型)
- C++11 并发指南九(综合运用: C++11 多线程下生产者消费者模型详解)
- Java多线程-并发协作(生产者消费者模型)
- Java并发与多线程(2) 生产者与消费者
- Java多线程之并发协作生产者消费者设计模式
- Java多线程-并发协作(生产者消费者模型)
- C++11 并发指南八(综合运用: C++11 多线程下生产者消费者模型详解)
- C++11 并发指南九(综合运用: C++11 多线程下生产者消费者模型详解)
- C++11 并发指南九(综合运用: C++11 多线程下生产者消费者模型详解)
- Java多线程之并发协作生产者消费者设计模式