麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

python 多線程中子線程和主線程相互通信方法

2020-02-15 23:35:58
字體:
供稿:網(wǎng)友

需求:主線程開啟了多個(gè)線程去干活,每個(gè)線程需要完成的時(shí)間不同,但是在干完活以后都要通知給主線程

下面上代碼:

#!/usr/bin/python# coding:utf8'''多線程和queue配合使用,實(shí)現(xiàn)子線程和主線程相互通信的例子'''import threading __author__ = "Kenny.Li" import Queueimport timeimport random q = Queue.Queue()  class MyThread(threading.Thread): def __init__(self, q, t, j):  super(MyThread, self).__init__()  self.q = q  self.t = t  self.j = j  def run(self):  time.sleep(self.j)  self.q.put(u"我是第%d個(gè)線程,我睡眠了%d秒,當(dāng)前時(shí)間是%s" % (self.t, self.j, time.ctime()))  count = 0threads = []for i in xrange(15): j = random.randint(1, 8) threads.append(MyThread(q, i, j))for mt in threads: mt.start()print "start time: ", time.ctime()while True: if not q.empty():  print q.get()  count += 1 if count == 15:  break

下面對(duì)以上代碼進(jìn)行解釋:

1,q 是實(shí)例化了的隊(duì)列對(duì)象,具有FIFO性。首先定義一個(gè)自己的線程類,重寫run方法。注意在構(gòu)造方法中傳入q隊(duì)列,用于接收每個(gè)線程需要返回的消息

2,第26行,通過q.put()方法,將每個(gè)子線程要返回給主線程的消息,存到隊(duì)列中。

3,從第31行開始,生成15個(gè)子線程,加入到線程組里,每個(gè)線程隨機(jī)睡眠1-8秒(模擬每個(gè)線程干活時(shí)間的長(zhǎng)短不同)

4,第34-35行,循環(huán)開啟所有子線程

5,第36行,打印開始時(shí)間

6,通過一個(gè)while循環(huán),當(dāng)q隊(duì)列中不為空時(shí),通過q.get()方法,循環(huán)讀取隊(duì)列q中的消息,每次計(jì)數(shù)器加一,當(dāng)計(jì)數(shù)器到15時(shí),證明所有子線程的消息都已經(jīng)拿到了,此時(shí)循環(huán)停止。

以上這篇python 多線程中子線程和主線程相互通信方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林站長(zhǎng)站。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 狠狠干视频网站 | 国产亚洲精品综合一区 | 嗯哈~不行好大h双性 | av老司机久久 | 久久精品国产一区二区电影 | 久久久久电影网站 | 国产99久久精品一区二区 | 国产免费一级淫片a级中文 99国产精品自拍 | 天堂成人国产精品一区 | 久久综合综合久久 | 亚洲一区二区三区视频免费 | 免费视频xxxx | 久久另类视频 | 国产精品嘿咻嘿咻在线播放 | 爱逼爱操综合网 | 久久久久久久免费精品 | 亚洲国产视频网 | 欧美顶级毛片在线播放小说 | 国产一区二区三区四区在线 | 国产午夜精品在线 | 一区二区三区在线观看视频 | 国内一区| 日本看片一区二区三区高清 | 成人做爰高潮片免费视频韩国 | 看免费黄色一级片 | 一级毛片免费高清视频 | 狠狠干五月天 | 久久亚洲综合色 | 免费在线观看国产精品 | 91成人免费在线视频 | 日韩精品dvd | 一区二区视 | 成人国产免费观看 | 欧美一级性| 99re久久最新地址获取 | 狠狠撸电影 | www日韩在线| 国产二区三区四区 | 久久精品av| 久草手机在线观看视频 | 天天撸日日夜夜 |