新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python線程事件Event的原理
原理分析

創(chuàng)新互聯(lián)建站 - 四川服務(wù)器托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽服務(wù)器托管,德陽服務(wù)器托管,遂寧服務(wù)器托管,綿陽服務(wù)器托管,四川云主機,成都云主機,西南云主機,四川服務(wù)器托管,西南服務(wù)器托管,四川/成都大帶寬,機柜大帶寬、租用·托管,四川老牌IDC服務(wù)商
1、事件EVENT中有一個全局內(nèi)置標(biāo)志Flag,值為True或False。
2、使用wait函數(shù)的線程將處于堵塞狀態(tài)。此時,F(xiàn)lag是指False。
直到其他線程調(diào)用set函數(shù)將全球標(biāo)志Flag放置為True,堵塞的線程將立即恢復(fù)運行,并使用isSet函數(shù)檢查當(dāng)前Flag狀態(tài)。
實例
# !usr/bin/env python
# -*- coding:utf-8 _*-
# 導(dǎo)入線程模塊
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)建并初始化線程
t = threading.Thread(target=get_girl_friend,args=(i,))
# 啟動線程
t.start()
# 將線程句柄添加list列表中
thread_list.append(t)
# 所有線程準(zhǔn)備完畢,將event內(nèi)置Flag設(shè)置為True,恢復(fù)正在阻塞的線程
eEvent.set()
# 遍歷列表,阻塞主線程
for t in thread_list:
# 阻塞主線程,等待所有子線程結(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線程事件Event的原理,希望對大家有所幫助。更多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線程事件Event的原理
分享鏈接:http://m.5511xx.com/article/cdcciei.html


咨詢
建站咨詢
