生产-消费者问题
2017-03-04 12:01
176 查看
# -*- coding: UTF-8 -*- import threading import time from random import randint from Queue import Queue class MyThread(threading.Thread): def __init__(self, func, args, name =""): threading.Thread.__init__(self) self.name = name self.func = func self.args = args def run(self): apply(self.func, self.args) def writeQ(queue): print "producing object for Q..." queue.put("XXX", 1) print "size now", queue.qsize() def readQ(queue): val = queue.get(1) print "consumed object from Q ...size now", queue.qsize() def writer(queue, loops): for i in range(loops): writeQ(queue) time.sleep(randint(1, 3)) def reader(queue, loops): for i in range(loops): readQ(queue) time.sleep(randint(2, 5)) funcs = [writer, reader] nfuncs = range(len(funcs)) def main(): nloops = randint(2, 5) q = Queue(32) threads = [] for i in nfuncs: t = MyThread(funcs[i], (q, nloops), funcs[i].__name__) threads.append(t) for i in nfuncs: threads[i].start() for i in nfuncs: threads[i].join() print "all done" if __name__ == "__main__": main()
相关文章推荐
- java多线程的同步 通信以及生产消费者问题
- 生产消费者问题代码
- 生产者消费者问题 这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者
- 在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。
- Java多线程系列--“基础篇”11之 生产消费者问题
- java多线程的同步 通信以及生产消费者问题
- 生产者消费者问题 这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者
- 一个生产/消费者问题
- 生产消费者模式实现方式和线程安全问题代码示例
- POSIX信号量与生产着消费者问题
- 一个生产这消费者问题
- 生产消费者问题 CreateMutex
- 生产者消费者问题 这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者
- Java多线程系列--“基础篇”11之 生产消费者问题
- 【转】linux下生产消费者问题
- 多线程之信号量--生产消费者问题
- java 生产消费者问题的多种实现方式
- Java多线程系列--“基础篇”11之 生产消费者问题
- java 多线程系列基础篇(十一)之生产消费者问题
- Java多线程系列--“基础篇”11之 生产消费者问题 (r)