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,...