欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年11月09日 11:02:03   作者:yifei325325  
今天小編就為大家分享一篇python 多線程中子線程和主線程相互通信方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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

下面上代碼:

#!/usr/bin/python
# coding:utf8
'''
多線程和queue配合使用,實(shí)現(xiàn)子線程和主線程相互通信的例子
'''
import threading
 
__author__ = "Kenny.Li"
 
import Queue
import time
import 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 = 0
threads = []
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行,通過(guò)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,通過(guò)一個(gè)while循環(huán),當(dāng)q隊(duì)列中不為空時(shí),通過(guò)q.get()方法,循環(huán)讀取隊(duì)列q中的消息,每次計(jì)數(shù)器加一,當(dāng)計(jì)數(shù)器到15時(shí),證明所有子線程的消息都已經(jīng)拿到了,此時(shí)循環(huán)停止。

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

相關(guān)文章

  • OpenCV結(jié)合selenium實(shí)現(xiàn)滑塊驗(yàn)證碼

    OpenCV結(jié)合selenium實(shí)現(xiàn)滑塊驗(yàn)證碼

    本文主要介紹了OpenCV結(jié)合selenium實(shí)現(xiàn)滑塊驗(yàn)證碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • python3實(shí)現(xiàn)將json對(duì)象存入Redis以及數(shù)據(jù)的導(dǎo)入導(dǎo)出

    python3實(shí)現(xiàn)將json對(duì)象存入Redis以及數(shù)據(jù)的導(dǎo)入導(dǎo)出

    這篇文章主要介紹了python3實(shí)現(xiàn)將json對(duì)象存入Redis以及數(shù)據(jù)的導(dǎo)入導(dǎo)出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Python中按值來(lái)獲取指定的鍵

    Python中按值來(lái)獲取指定的鍵

    今天小編就為大家分享一篇關(guān)于Python中按值來(lái)獲取指定的鍵,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Python-OpenCV深度學(xué)習(xí)入門示例詳解

    Python-OpenCV深度學(xué)習(xí)入門示例詳解

    深度學(xué)習(xí)已經(jīng)成為機(jī)器學(xué)習(xí)中最受歡迎和發(fā)展最快的領(lǐng)域。深度學(xué)習(xí)的常見應(yīng)用包括語(yǔ)音識(shí)別、圖像識(shí)別、自然語(yǔ)言處理、推薦系統(tǒng)等等。本文將通過(guò)一些示例代碼,帶你詳細(xì)了解深入學(xué)習(xí)
    2021-12-12
  • Pygame庫(kù)200行代碼實(shí)現(xiàn)簡(jiǎn)易飛機(jī)大戰(zhàn)

    Pygame庫(kù)200行代碼實(shí)現(xiàn)簡(jiǎn)易飛機(jī)大戰(zhàn)

    本文主要介紹了Pygame庫(kù)200行代碼實(shí)現(xiàn)簡(jiǎn)易飛機(jī)大戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • PyQt5實(shí)現(xiàn)下載進(jìn)度條效果

    PyQt5實(shí)現(xiàn)下載進(jìn)度條效果

    這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)下載進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 利用OpenCV+Tensorflow實(shí)現(xiàn)的手勢(shì)識(shí)別

    利用OpenCV+Tensorflow實(shí)現(xiàn)的手勢(shì)識(shí)別

    這幾天沒(méi)事,想著再學(xué)點(diǎn)一些視覺(jué)識(shí)別方向的東西,因?yàn)橹白隽蓑?yàn)證碼識(shí)別,有了機(jī)器學(xué)習(xí)的信心,因此這次打算做個(gè)手勢(shì)識(shí)別,下面這篇文章主要給大家介紹了關(guān)于利用OpenCV+Tensorflow實(shí)現(xiàn)的手勢(shì)識(shí)別的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Python圖像處理二值化方法實(shí)例匯總

    Python圖像處理二值化方法實(shí)例匯總

    這篇文章主要介紹了Python圖像處理二值化方法實(shí)例匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 基于pip install django失敗時(shí)的解決方法

    基于pip install django失敗時(shí)的解決方法

    今天小編就為大家分享一篇基于pip install django失敗時(shí)的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 利用ctypes提高Python的執(zhí)行速度

    利用ctypes提高Python的執(zhí)行速度

    這篇文章給大家介紹了如何利用ctypes提高Python的執(zhí)行速度,對(duì)大家學(xué)習(xí)使用python具有一定的參考借鑒價(jià)值。有需要的朋友們一起來(lái)看看吧。
    2016-09-09

最新評(píng)論