新聞中心
原理分析

創(chuàng)新互聯(lián)建站 - 四川服務(wù)器托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽(yáng)服務(wù)器托管,德陽(yáng)服務(wù)器托管,遂寧服務(wù)器托管,綿陽(yáng)服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),四川服務(wù)器托管,西南服務(wù)器托管,四川/成都大帶寬,機(jī)柜大帶寬、租用·托管,四川老牌IDC服務(wù)商
1、事件EVENT中有一個(gè)全局內(nèi)置標(biāo)志Flag,值為T(mén)rue或False。
2、使用wait函數(shù)的線(xiàn)程將處于堵塞狀態(tài)。此時(shí),F(xiàn)lag是指False。
直到其他線(xiàn)程調(diào)用set函數(shù)將全球標(biāo)志Flag放置為T(mén)rue,堵塞的線(xiàn)程將立即恢復(fù)運(yùn)行,并使用isSet函數(shù)檢查當(dāng)前Flag狀態(tài)。
實(shí)例
# !usr/bin/env python
# -*- coding:utf-8 _*-
# 導(dǎo)入線(xiàn)程模塊
import threading
# 創(chuàng)建event事件
eEvent = threading.Event()
def get_girl_friend(id):
print("單身狗{}都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):{}.....".format(id,eEvent.isSet()))
eEvent.wait()
print("單身狗%d告別單身....."%id)
if __name__ == "__main__":
thread_list = list()
for i in range(1,11):
# 創(chuàng)建并初始化線(xiàn)程
t = threading.Thread(target=get_girl_friend,args=(i,))
# 啟動(dòng)線(xiàn)程
t.start()
# 將線(xiàn)程句柄添加list列表中
thread_list.append(t)
# 所有線(xiàn)程準(zhǔn)備完畢,將event內(nèi)置Flag設(shè)置為T(mén)rue,恢復(fù)正在阻塞的線(xiàn)程
eEvent.set()
# 遍歷列表,阻塞主線(xiàn)程
for t in thread_list:
# 阻塞主線(xiàn)程,等待所有子線(xiàn)程結(jié)束
t.join()
print("程序結(jié)束!")
'''
輸出結(jié)果:
單身狗1都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗2都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗3都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗4都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗5都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗6都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗7都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗8都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗9都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗10都準(zhǔn)備完畢,內(nèi)置Flag狀態(tài):False.....
單身狗5告別單身,內(nèi)置Flag狀態(tài):True.....
單身狗6告別單身,內(nèi)置Flag狀態(tài):True.....
單身狗7告別單身,內(nèi)置Flag狀態(tài):True.....
單身狗1告別單身,內(nèi)置Flag狀態(tài):True.....
單身狗8告別單身,內(nèi)置Flag狀態(tài):True.....
單身狗10告別單身,內(nèi)置Flag狀態(tài):True.....
單身狗4告別單身,內(nèi)置Flag狀態(tài):True.....
單身狗9告別單身,內(nèi)置Flag狀態(tài):True.....
單身狗3告別單身,內(nèi)置Flag狀態(tài):True.....
單身狗2告別單身,內(nèi)置Flag狀態(tài):True.....
程序結(jié)束!
'''
以上就是python線(xiàn)程事件Event的原理,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)Python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
文章標(biāo)題:創(chuàng)新互聯(lián)Python教程:python線(xiàn)程事件Event的原理
網(wǎng)頁(yè)地址:http://m.fisionsoft.com.cn/article/cdcciei.html


咨詢(xún)
建站咨詢(xún)
