最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年11月09日 11:02:03   作者:yifei325325  
今天小編就為大家分享一篇python 多線程中子線程和主線程相互通信方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(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行,通過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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python使用asyncio包實(shí)現(xiàn)異步編程方式

    Python使用asyncio包實(shí)現(xiàn)異步編程方式

    這篇文章主要介紹了Python使用asyncio包實(shí)現(xiàn)異步編程方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python制作最美應(yīng)用的爬蟲

    python制作最美應(yīng)用的爬蟲

    這篇文章主要介紹了python制作最美應(yīng)用的爬蟲的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • Python基本文件操作實(shí)用指南

    Python基本文件操作實(shí)用指南

    文件操作是我們開發(fā)中必不可少的一項(xiàng)需求,下面這篇文章主要給大家介紹了關(guān)于Python基本文件操作的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • pytorch在fintune時(shí)將sequential中的層輸出方法,以vgg為例

    pytorch在fintune時(shí)將sequential中的層輸出方法,以vgg為例

    今天小編就為大家分享一篇pytorch在fintune時(shí)將sequential中的層輸出方法,以vgg為例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-08-08
  • Jupyter?Notebook的使用詳解

    Jupyter?Notebook的使用詳解

    JupyterNotebook是一個(gè)強(qiáng)大的工具,可以用于數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)等領(lǐng)域的各種任務(wù),該文章介紹了JupyterNotebook的基本使用方法,包括新建和保存Notebook,插入圖像,運(yùn)行代碼,以及許多快捷鍵的使用
    2025-01-01
  • Python?Melt函數(shù)將寬格式的數(shù)據(jù)表轉(zhuǎn)換為長(zhǎng)格式

    Python?Melt函數(shù)將寬格式的數(shù)據(jù)表轉(zhuǎn)換為長(zhǎng)格式

    在數(shù)據(jù)處理和清洗中,melt函數(shù)是Pandas庫(kù)中一個(gè)強(qiáng)大而靈活的工具,它的主要功能是將寬格式的數(shù)據(jù)表轉(zhuǎn)換為長(zhǎng)格式,從而更方便進(jìn)行分析和可視化,本文將深入探討melt函數(shù)的用法、參數(shù)解析以及實(shí)際應(yīng)用場(chǎng)景
    2023-12-12
  • 詳細(xì)分析Python collections工具庫(kù)

    詳細(xì)分析Python collections工具庫(kù)

    這篇文章主要介紹了詳解Python collections工具庫(kù)的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • PyQt5 實(shí)現(xiàn)給窗口設(shè)置背景圖片的方法

    PyQt5 實(shí)現(xiàn)給窗口設(shè)置背景圖片的方法

    今天小編就為大家分享一篇PyQt5 實(shí)現(xiàn)給窗口設(shè)置背景圖片的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-06-06
  • Pandas groupby apply agg 的區(qū)別 運(yùn)行自定義函數(shù)說明

    Pandas groupby apply agg 的區(qū)別 運(yùn)行自定義函數(shù)說明

    這篇文章主要介紹了Pandas groupby apply agg 的區(qū)別 運(yùn)行自定義函數(shù)說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2021-03-03
  • Python常見文件操作的示例詳解

    Python常見文件操作的示例詳解

    文件操作是我們開發(fā)中必不可少的一項(xiàng)需求。本文主要給大家介紹了關(guān)于Python常見的一些文件操作,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07

最新評(píng)論

靖江市| 南丰县| 和林格尔县| 高平市| 凤城市| 黄平县| 沧州市| 甘孜县| 潞城市| 阳谷县| 长岭县| 北碚区| 澎湖县| 鞍山市| 垦利县| 遂溪县| 丰都县| 罗江县| 贵定县| 马山县| 武胜县| 双牌县| 资溪县| 安塞县| 花莲县| 遵义县| 湖南省| 随州市| 本溪市| 克拉玛依市| 青河县| 晋中市| 广州市| 环江| 永福县| 临漳县| 靖西县| 鹤岗市| 华坪县| 博客| 嘉鱼县|