from threading import Thread, Lock
from time import sleep
"""
有序执行
"""
lock1 = Lock()
# 创建另外一把锁,并且“锁上”
lock2 = Lock()
lock2.acquire()
# 创建另外一把锁,并且“锁上”
lock3 = Lock()
lock3.acquire()
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()
def main():
t1 = Task1()
t2 = Task2()
t3 = Task3()
t1.start()
t2.start()
t3.start()
if __name__ == '__main__':
main()
运行结果:
------Task 1 -----
------Task 2 -----
------Task 3 -----
------Task 1 -----
------Task 2 -----
------Task 3 -----
------Task 1 -----
------Task 2 -----
------Task 3 -----
.
.
.