线程事件--day36
生活随笔
收集整理的這篇文章主要介紹了
线程事件--day36
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
"""
----線程事件----
是用于協調多個線程工作的,當一個線程要執行某個操作,需要獲取另一個線程的狀態
你要給別人打電話 必須明確知道對方手機買好了
作為客戶端 要連接服務器 必須明確服務器已經啟動了,那么作為啟動服務器的一方 如何告知客戶端?
就通過事件
"""
import time from threading import Thread from threading import Event# 用Event創建一個事件 e = Event() # 默認Falsedef start():print("正在啟動服務器......")time.sleep(5)print("服務器啟動成功!")e.set() # 就是把事件的值設置為Truedef connect():# 重試3次for i in range(3):print("等待服務器啟動....")# 設置等待時間e.wait(2) # 會阻塞 直到對方把事件設置為True# 判斷Event 是否可以執行if e.isSet():print("連接成功!")breakelse:print("連接失敗")else: # 如果3次都沒成功 就打印這個消息print("服務器沒有啟動")Thread(target=start).start() Thread(target=connect).start()
----線程事件----
是用于協調多個線程工作的,當一個線程要執行某個操作,需要獲取另一個線程的狀態
你要給別人打電話 必須明確知道對方手機買好了
作為客戶端 要連接服務器 必須明確服務器已經啟動了,那么作為啟動服務器的一方 如何告知客戶端?
就通過事件
"""
import time from threading import Thread from threading import Event# 用Event創建一個事件 e = Event() # 默認Falsedef start():print("正在啟動服務器......")time.sleep(5)print("服務器啟動成功!")e.set() # 就是把事件的值設置為Truedef connect():# 重試3次for i in range(3):print("等待服務器啟動....")# 設置等待時間e.wait(2) # 會阻塞 直到對方把事件設置為True# 判斷Event 是否可以執行if e.isSet():print("連接成功!")breakelse:print("連接失敗")else: # 如果3次都沒成功 就打印這個消息print("服務器沒有啟動")Thread(target=start).start() Thread(target=connect).start()
?
轉載于:https://www.cnblogs.com/wenchen/p/10221211.html
總結
以上是生活随笔為你收集整理的线程事件--day36的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法-链表常用算法
- 下一篇: 文本框输入怎么样让键盘消失