所谓的多线程的同步并不是说多个线程在执行动作上一致,而是在执行次序上有一定的规律,不是盲目的竞争执行。具体看下面的执行代码程序!
from threading import Thread,Lock
import time
class thread1(Thread):
def run(self):
while True:
if lock1.acquire():
print('---------lock1---------')
time.sleep(1)
lock2.release()
class thread2(Thread):
def run(self):
while True:
if lock2.acquire():
print('---------lock2---------')
time.sleep(1)
lock3.release()
class thread3(Thread):
def run(self):
while True:
if lock3.acquire():
print('---------lock3---------')
time.sleep(1)
lock1.release()
lock1 = Lock()
lock2 = Lock()
lock2.acquire()
lock3 = Lock()
lock3.acquire()
t1 = thread1()
t2 = thread2()
t3 = thread3()
t1.start()
t2.start()
输出结果:
---------lock1---------
---------lock2---------
---------lock3---------
---------lock1---------
---------lock2---------
---------lock3---------
---------lock1---------
---------lock2---------
---------lock3---------
---------lock1---------
---------lock2---------