python--事件event簡單用法
在併發程式設計中,涉及到了時間event的使用,首先要先了解到event上執行緒threading模組中的一個類。具體的用法有:
event.set() # 設定標誌位
event.wait() #等待設定標誌位
event.clear() # 清除標誌位
廢話不說,看栗子
from threading import Event,
Thread
import time
import random
event = Event()
def Light():
print('紅燈亮了')
time.sleep(random.randint(1, 2))
event.set() # 設定標誌位
print('綠燈亮了')
# def car(i):
# print('%s 正在等紅燈' % i)
# event.wait() #等待設定標誌位
# print('%s加油起步' % i)
def car(i):
print('%s 正在等紅燈' % i)
event.clear() # 清除標誌位
print('%s加油起步' % i)
t1 = Thread(target=Light)
t1.start()
for i in range(3):
t = Thread(target=car, args=(i,))
t.start()
'''
事件Event.wait()執行結果
紅燈亮了
0 正在等紅燈
1 正在等紅燈
2 正在等紅燈
綠燈亮了
2加油起步
0加油起步
1加油起步
'''
#事件Event.clear()的執行結果
'''
紅燈亮了
0 正在等紅燈
0加油起步
1 正在等紅燈
1加油起步
2 正在等紅燈
2加油起步
綠燈亮了
'''
相關文章
- python多執行緒、鎖、event事件機制的簡單使用Python執行緒事件
- JFinal-event v2.3.0 釋出,簡化 Event 事件類事件
- 簡單事件事件
- CyclicBarrier簡單用法
- realloc簡單用法
- mysql 事件 eventMySql事件
- Promise的簡單用法Promise
- golang flag簡單用法Golang
- Tkinter (44) 事件 Event事件
- JS中event事件JS事件
- Laravel使用event事件Laravel事件
- Opentelemetry SDK的簡單用法
- git-stash簡單用法Git
- MySQL入門--EVENT(事件)MySql事件
- Spring Boot 之事件(Event)Spring Boot事件
- 事件迴圈(event loop)事件OOP
- js中事件物件eventJS事件物件
- MD5的簡單用法
- linux下mail的簡單用法LinuxAI
- FileReader 事件用法事件
- JS 事件迴圈(Event Loop)JS事件OOP
- 瞭解下C# 事件(Event)C#事件
- freeswitch的event事件處理事件
- JavaScript基礎之事件eventJavaScript事件
- JS 事件機制 Event LoopJS事件OOP
- JavaScript事件迴圈(Event Loop)JavaScript事件OOP
- Javascript 事件迴圈event loopJavaScript事件OOP
- JS事件迴圈Event LoopJS事件OOP
- (精華2020年5月4日更新) vue教程篇 事件簡寫和事件物件$eventVue事件物件
- C++中const的簡單用法C++
- 分散式系列七: zookeeper簡單用法分散式
- Python中的selenium的簡單用法Python
- channel的單向用法與select,range簡單使用
- Javasript學習筆記-Event事件Java筆記事件
- node中的事件環(Event Loop)事件OOP
- 事件迴圈(Event Loop)淺析事件OOP
- 詳解 Solidity 事件Event - 完全搞懂事件的使用Solid事件
- Node.js Event Loop與瀏覽器 Event Loop(事件環)Node.jsOOP瀏覽器事件