码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-04-11 19:58:09      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:python线程间通讯

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模块实现线程间通讯

标签:python线程间通讯

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!