Python程式設計之event物件的用法例項分析

2021-09-24 09:56:12 字數 1197 閱讀 7901

python提供了event物件用於執行緒間通訊,它是由執行緒設定的訊號標誌,如果訊號標誌位為假,則執行緒等待直到訊號被其他執行緒設定成真。這一點似乎和windows的event正好相反。 event物件實現了簡單的執行緒通訊機制,它提供了設定訊號,清除訊號,等待等用於實現執行緒間的通訊。

1.設定訊號

使用event的set()方法可以設定event物件內部的訊號標誌為真。event物件提供了isset()方法來判斷其內部訊號標誌的狀態,當使用event物件的set()方法後,isset()方法返回真.

2.清除訊號

使用event物件的clear()方法可以清除event物件內部的訊號標誌,即將其設為假,當使用event的clear方法後,isset()方法返回假

3.等待

event物件wait的方法只有在內部訊號為真的時候才會很快的執行並完成返回。當event物件的內部訊號標誌位假時,則wait方法一直等待到其為真時才返回。

可以使用event讓工作執行緒優雅地退出,示例**如下:

# 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):

for i in t1:

i.start()

time.sleep(10)

q =raw_input("please input exit:")

if q=="q":

event.clear()

if __name__=='__main__':

test9()

**:

Python多執行緒之event

事件 event 用於執行緒間同步和通訊。比如執行緒a要完成某一任務 event 執行緒b才能執行後面的 怎麼實現呢,就是用event。event常用方法 釋義set 開始乙個事件 wait 如果未設定set狀態會一直等待,否則過 clear 清除set狀態 isset 是否設定set狀態 注意 w...

python 執行緒之同步條件(Event

usr bin python coding utf 8 author fmspider time 2018 5 3 17 16 function 同步條件 event 條件同步和條件變數同步差不多意思,只是少了鎖功能,因為條件同步設計於不訪問共享資源的 條件環境。event threading.ev...

python多執行緒之事件Event的使用詳解

前言 小夥伴a,b,c圍著吃火鍋,當菜上齊了,請客的主人說 開吃!於是小夥伴一起動筷子,這種場景如何實現 event 事件 event 事件 事件處理的機制 全域性定義了乙個內建標誌flag,如果flag值為 false,那麼當程式執行 event.wait方法時就會阻塞,如果flag值為true,...