直接看实例吧,控制多线程的执行顺序:

代码:

#控制多线程的执行顺序
from threading import Thread,Lock
import time

class Task1(Thread):
    def run(self):
        while True:
             if lock1.acquire():
                print("---Task1---")
                time.sleep(0.5)
                lock2.release()
class Task2(Thread):
    def run(self):
        while True:
             if lock2.acquire():
                print("---Task2---")
                time.sleep(0.5)
                lock3.release()
class Task3(Thread):
    def run(self):
        while True:
             if lock3.acquire():
                print("---Task3---")
                time.sleep(0.5)
                lock1.release()
#创建lock实例1,第一个开始不上锁
lock1=Lock()
lock2=Lock()
lock2.acquire()
lock3=Lock()
lock3.acquire()

t1=Task1()
t2=Task2()
t3=Task3()

t1.start()
t2.start()
t3.start()

结果:

---Task1---
---Task2---
---Task3---
---Task1---
---Task2---
---Task3---
---Task1---
---Task2---
---Task3---
---Task1---
---Task2---
---Task3---
...

results matching ""

    No results matching ""