ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
#### 同步应用 ##### 多个线程有序执行 ~~~ from threading import Thread,Lock from time import sleep class Task1(Thread): def run(self): while True: if lock1.acquire(): print("------Task 1 -----") sleep(0.5) lock2.release() class Task2(Thread): def run(self): while True: if lock2.acquire(): print("------Task 2 -----") sleep(0.5) lock3.release() class Task3(Thread): def run(self): while True: if lock3.acquire(): print("------Task 3 -----") sleep(0.5) lock1.release() #使用Lock创建出的锁默认没有“锁上” lock1 = Lock() #创建另外一把锁,并且“锁上” lock2 = Lock() lock2.acquire() #创建另外一把锁,并且“锁上” lock3 = Lock() lock3.acquire() t1 = Task1() t2 = Task2() t3 = Task3() t1.start() t2.start() t3.start() ~~~ 运行结果: ~~~ ------Task 1 ----- ------Task 2 ----- ------Task 3 ----- ------Task 1 ----- ------Task 2 ----- ------Task 3 ----- ------Task 1 ----- ------Task 2 ----- ------Task 3 ----- ------Task 1 ----- ------Task 2 ----- ------Task 3 ----- ------Task 1 ----- ------Task 2 ----- ------Task 3 ----- ...省略... ~~~ >[warning] 总结 * 可以使用互斥锁完成多个任务,有序的进程工作,这就是线程的同步