本文實例講述了Python編程中event對象的用法。分享給大家供大家參考,具體如下:
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 nicelyclass 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()
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python進程與線程操作技巧總結》、《Python Socket編程技巧總結》、《Python圖片操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答