线程同步——两个线程轮流执行python实现

import threading
import time
lockA=threading.Lock()
lockB=threading.Lock()
def printA(n):
  if n<0:
    return
  lockA.acquire()
  print("+++")
  lockB.release()
  time.sleep(0.1)
  printA(n-1)
def printB(n):
  if n<0:  
    return
  lockB.acquire()
  print("***")
  lockA.release()
  time.sleep(0.2)
  printB(n-1) 

lockB.acquire()
t1=threading.Thread(target=printA,args=(10,))
t2=threading.Thread(target=printB,args=(10,))
t1.start()
t2.start()
t1.join()
t2.join()

找实习,又要回忆起操作系统的东西了。

思想:创建两个锁lockA和lockB。每次执行完后,锁掉自己的锁,并释放对方的锁。

初始时,若A先运行,则释放A的锁,锁住B的锁。

猜你喜欢

转载自blog.csdn.net/vcvycy/article/details/79774080