Python編程之event對(duì)象的用法實(shí)例分析
本文實(shí)例講述了Python編程中event對(duì)象的用法。分享給大家供大家參考,具體如下:
Python提供了Event對(duì)象用于線程間通信,它是由線程設(shè)置的信號(hào)標(biāo)志,如果信號(hào)標(biāo)志位為假,則線程等待直到信號(hào)被其他線程設(shè)置成真。這一點(diǎn)似乎和windows的event正好相反。 Event對(duì)象實(shí)現(xiàn)了簡(jiǎn)單的線程通信機(jī)制,它提供了設(shè)置信號(hào),清除信號(hào),等待等用于實(shí)現(xiàn)線程間的通信。
1.設(shè)置信號(hào)
使用Event的set()方法可以設(shè)置Event對(duì)象內(nèi)部的信號(hào)標(biāo)志為真。Event對(duì)象提供了isSet()方法來(lái)判斷其內(nèi)部信號(hào)標(biāo)志的狀態(tài),當(dāng)使用event對(duì)象的set()方法后,isSet()方法返回真.
2.清除信號(hào)
使用Event對(duì)象的clear()方法可以清除Event對(duì)象內(nèi)部的信號(hào)標(biāo)志,即將其設(shè)為假,當(dāng)使用Event的clear方法后,isSet()方法返回假
3.等待
Event對(duì)象wait的方法只有在內(nèi)部信號(hào)為真的時(shí)候才會(huì)很快的執(zhí)行并完成返回。當(dāng)Event對(duì)象的內(nèi)部信號(hào)標(biāo)志位假時(shí),則wait方法一直等待到其為真時(shí)才返回。
可以使用Event讓工作線程優(yōu)雅地退出,示例代碼如下:
# make thread exit nicely
class MyThread9(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
global event
while True:
if event.isSet():
logging.warning(self.getName() + " is Running")
time.sleep(2)
else:
logging.warning(self.getName() + " stopped")
break;
event = threading.Event()
event.set()
def Test9():
t1=[]
for i in range(6):
t1.append(MyThread9())
for i in t1:
i.start()
time.sleep(10)
q =raw_input("Please input exit:")
if q=="q":
event.clear()
if __name__=='__main__':
Test9()
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用Python的音樂(lè)播放器GUI的實(shí)現(xiàn)
本文主要介紹了使用Python的音樂(lè)播放器GUI的實(shí)現(xiàn),可以讓您快速輕松地管理和收聽(tīng)所有音樂(lè)文件,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Python調(diào)用工具包實(shí)現(xiàn)發(fā)送郵件服務(wù)
這篇文章主要為大家詳細(xì)介紹了Python圖畫調(diào)用工具包實(shí)現(xiàn)發(fā)送郵件服務(wù)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
Pytorch加載部分預(yù)訓(xùn)練模型的參數(shù)實(shí)例
今天小編就為大家分享一篇Pytorch加載部分預(yù)訓(xùn)練模型的參數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
使用Puppeteer爬取微信文章的實(shí)現(xiàn)
這篇文章主要介紹了使用Puppeteer爬取微信文章的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
使用python 的matplotlib 畫軌道實(shí)例
今天小編就為大家分享一篇使用python 的matplotlib 畫軌道實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Pandas merge合并操作的實(shí)現(xiàn)
Pandas的merge()函數(shù)用于合并兩個(gè)DataFrame數(shù)據(jù)表,本文就來(lái)介紹一下Pandas merge合并操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
Windows下Python2與Python3兩個(gè)版本共存的方法詳解
這篇文章主要介紹了Windows下Python2與Python3兩個(gè)版本共存的方法,文中介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。2017-02-02
Python的Flask框架中實(shí)現(xiàn)分頁(yè)功能的教程
這篇文章主要介紹了Python的Flask框架中實(shí)現(xiàn)分頁(yè)功能的教程,文中的示例基于一個(gè)博客來(lái)實(shí)現(xiàn),需要的朋友可以參考下2015-04-04

