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

python中Event實(shí)現(xiàn)線程間同步介紹

 更新時間:2022年04月10日 18:25:02   作者:hsy12342611  
這篇文章主要介紹了python中Event實(shí)現(xiàn)線程間同步,Event是python線程間同步一種常用的方法,下列內(nèi)容總結(jié)需要的朋友可以參考一下

前言:

Event在python線程間同步是一種常用的方法,本博客以生產(chǎn)者線程和工作者線程為例說明Event在線程間進(jìn)行10次同步的應(yīng)用。

import threading
from threading import Event, Thread
import time
import random
from time import sleep
?
pevent = Event() #默認(rèn)是沒有事件的
pevent.clear()
?
cevent = Event()?
cevent.clear()
?
runtimes = 10
mutex_lock = threading.Lock()
?
?
class ProducerThread (threading.Thread):
? ? def __init__(self, name, runflag):
? ? ? ? threading.Thread.__init__(self)
? ? ? ? self.name = name
? ? ? ? self.runflag = runflag
? ? ? ? self.continueflag = Event()
? ? ? ? self.continueflag.set()
? ? ? ??
? ? def run(self):
? ? ? ? global runtimes ?
? ? ? ? sleep(1)
? ? ? ? print ("開始線程:" + self.name)
? ? ? ? while self.continueflag.isSet():
? ? ? ? ? ? print("wait consumer ...")
? ? ? ? ? ? if runtimes == 0:
? ? ? ? ? ? ? ? self.continueflag.clear()
? ? ? ? ? ? ? ? break
? ? ? ? ? ? pevent.wait()
? ? ? ? ? ? print("come an consumer ...")
? ? ? ? ? ? mutex_lock.acquire()
? ? ? ? ? ? runtimes = runtimes - 1
? ? ? ? ? ? mutex_lock.release()
? ? ? ? ? ? pevent.clear()
? ? ? ? ? ? sleep(1)
? ? ? ? ? ? cevent.set()
? ? ? ? print ("退出線程:" + self.name)
? ? ? ? self.runflag.set()
?
class ConsumerThread (threading.Thread):
? ? def __init__(self,name, runflag):
? ? ? ? threading.Thread.__init__(self)
? ? ? ? self.name = name
? ? ? ? self.runflag = runflag
? ? ? ? self.continueflag = Event()
? ? ? ? self.continueflag.set()
? ? ? ??
? ? def run(self):
? ? ? ? global runtimes?
? ? ? ? print ("開始線程:" + self.name)
? ? ? ? while self.continueflag.isSet():
? ? ? ? ? ? if 0 == runtimes:
? ? ? ? ? ? ? ? self.continueflag.clear()?
? ? ? ? ? ? ? ? pevent.set()
? ? ? ? ? ? ? ? break
? ? ? ? ? ? print("I want to consum ... ", runtimes)
? ? ? ? ? ? pevent.set() #通知生產(chǎn)者要消費(fèi)
? ? ? ? ? ? cevent.wait()
? ? ? ? ? ? cevent.clear()
? ? ? ? ? ? sleep(1)
? ? ? ? print ("退出線程:" + self.name)
? ? ? ? self.runflag.set()
?
def test_pthread():
? ? runflag = Event()?
? ? pt = ProducerThread("producer", runflag)
? ? ct = ConsumerThread("consumer", runflag)
? ? pt.start()
? ? ct.start()
? ? pt.join()
? ? ct.join()
? ? runflag.wait()
?
if __name__ == '__main__':
? ? print('===============begin=================')
? ? test_pthread()
? ? print('===============end=================')

運(yùn)行結(jié)果如下:

到此這篇關(guān)于python中Event實(shí)現(xiàn)線程間同步介紹的文章就介紹到這了,更多相關(guān)Event線程間同步內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python生成密碼字典的方法

    python生成密碼字典的方法

    今天小編就為大家分享一篇python生成密碼字典的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • pygame中blit()參數(shù)的使用及臟矩形動畫形成的說明

    pygame中blit()參數(shù)的使用及臟矩形動畫形成的說明

    這篇文章主要介紹了pygame中blit()參數(shù)的使用及臟矩形動畫形成的說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Python實(shí)現(xiàn)的基數(shù)排序算法原理與用法實(shí)例分析

    Python實(shí)現(xiàn)的基數(shù)排序算法原理與用法實(shí)例分析

    這篇文章主要介紹了Python實(shí)現(xiàn)的基數(shù)排序算法,簡單說明了基數(shù)排序的原理并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)與使用基數(shù)排序的具體操作技巧,需要的朋友可以參考下
    2017-11-11
  • 結(jié)合Python工具使用TfidfVectorizer進(jìn)行文本特征提取方式

    結(jié)合Python工具使用TfidfVectorizer進(jìn)行文本特征提取方式

    在自然語言處理中,TF-IDF是一種重要的特征提取方法,本文介紹了如何使用Python的sklearn庫中的TfidfVectorizer進(jìn)行文本特征提取,首先,需要安裝sklearn庫,TfidfVectorizer能將文本文檔集合轉(zhuǎn)換為TF-IDF特征矩陣
    2024-10-10
  • 常見Python AutoEDA工具庫及功能使用探究

    常見Python AutoEDA工具庫及功能使用探究

    AutoEDA(自動探索性數(shù)據(jù)分析)工具庫是數(shù)據(jù)科學(xué)中至關(guān)重要的一部分,它們能夠自動生成數(shù)據(jù)摘要、探查數(shù)據(jù)的基本特征、檢測異常值和提供可視化,為數(shù)據(jù)科學(xué)家和分析師們提供了解數(shù)據(jù)的便捷方式,本文為大家介紹常見的AutoEDA工具庫及其功能和示例代碼
    2024-01-01
  • python開發(fā)入門——列表生成式

    python開發(fā)入門——列表生成式

    這篇文章主要介紹了python 列表生成式的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python開發(fā),感興趣的朋友可以了解下
    2020-09-09
  • pycharm 批量修改變量名稱的方法

    pycharm 批量修改變量名稱的方法

    這篇文章主要介紹了pycharm 批量修改變量名稱的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 使用python生成目錄樹

    使用python生成目錄樹

    這篇文章主要為大家詳細(xì)介紹了使用python生成目錄樹、文件的程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Matplotlib 生成不同大小的subplots實(shí)例

    Matplotlib 生成不同大小的subplots實(shí)例

    今天小編就為大家分享一篇Matplotlib 生成不同大小的subplots實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中l(wèi)ogging.NullHandler 的使用教程

    Python中l(wèi)ogging.NullHandler 的使用教程

    這篇文章主要介紹了Python中l(wèi)ogging.NullHandler 的使用教程,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2018-11-11

最新評論

南漳县| 石首市| 武穴市| 开化县| 通江县| 炎陵县| 九台市| 都匀市| 阜康市| 寿宁县| 尼勒克县| 綦江县| 清流县| 三台县| 九龙县| 正宁县| 宁安市| 滨海县| 荔浦县| 乌鲁木齐市| 昌都县| 元阳县| 宾川县| 长宁县| 石泉县| 化州市| 商南县| 麻城市| 肥西县| 内乡县| 柘城县| 淅川县| 玉山县| 耿马| 新晃| 海原县| 揭西县| 宝丰县| 昌江| 卫辉市| 西青区|