Python-线程-有序执行

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 -----
.
.
.

猜你喜欢

转载自blog.csdn.net/weixin_44151971/article/details/85231787