首页 > 编程语言 > 详细

使用Queue模块实现线程间通讯

时间:2018-04-11 19:52:17      阅读:209      评论:0      收藏:0      [点我收藏+]
import threading from random import randint from time import sleep from Queue import Queue class MyThread(threading.Thread):     def __init__(self, queue, func, loop):         super(MyThread, self).__init__()         self.queue = queue         self.func = func         self.loop = loop     def run(self):         self.func(self.queue, self.loop) def writer(q, loops):     for i in range(loops):         s = randint(100, 200)         strs = "xxx-%s" % (s)         q.put(strs, block=1)         print("Write data: {}, Queue Size now: {}".format(strs, q.qsize()))         sleep(randint(1, 8)) def reader(q, loops):     for i in range(loops):         val = q.get(block=1)         print("Read value: {}, Queue Size now: {}".format(val, q.qsize()))         sleep(randint(2, 10)) def main():     funcs = [writer, reader]     nfuncs = range(len(funcs))     nloops = randint(1,8)     q = Queue(32)     threads = []     for i in nfuncs:         t = MyThread(q, funcs[i], nloops)         threads.append(t)     for i in nfuncs:         threads[i].start()     for i in nfuncs:         threads[i].join()     print(" all DONE !!!") if __name__ == '__main__':     main()


使用Queue模块实现线程间通讯

原文:http://blog.51cto.com/freshair/2097109

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!