当前位置: 移动技术网 > IT编程>脚本编程>Python > python 实现两个线程交替执行

python 实现两个线程交替执行

2020年05月15日  | 移动技术网IT编程  | 我要评论

女王神剑,海贼王之吟游诗人,婢女戏情

我就废话不多说,直接看代码吧!

import threading
import time

def a():
  while true:
    lockb.acquire()
    print('a')
    locka.release()
    time.sleep(0.5)


def b():
  while true:
    locka.acquire()
    print('b')
    lockb.release()
    time.sleep(0.5)


if __name__ == "__main__":
  locka = threading.lock()
  lockb = threading.lock()

  ta = threading.thread(none, a)
  tb = threading.thread(none, b)

  locka.acquire()   #保证a先执行

  ta.start()
  tb.start()

获取对方的锁,运行完后释放自己的锁

补充知识:线程同步——两个线程轮流执行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的锁。

以上这篇python 实现两个线程交替执行就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网