python 實現(xiàn)兩個線程交替執(zhí)行
我就廢話不多說,直接看代碼吧!
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先執(zhí)行
ta.start()
tb.start()
獲取對方的鎖,運行完后釋放自己的鎖
補(bǔ)充知識:線程同步——兩個線程輪流執(zhí)行python實現(xiàn)
看代碼!
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()
找實習(xí),又要回憶起操作系統(tǒng)的東西了。
思想:創(chuàng)建兩個鎖lockA和lockB。每次執(zhí)行完后,鎖掉自己的鎖,并釋放對方的鎖。
初始時,若A先運行,則釋放A的鎖,鎖住B的鎖。
以上這篇python 實現(xiàn)兩個線程交替執(zhí)行就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python腳本來控制Windows Azure的簡單教程
這篇文章主要介紹了使用Python腳本來控制Windows Azure的簡單教程,由于微軟官方提供了Python SDK,使得用戶自己用Python控制Azure成為了可能,需要的朋友可以參考下2015-04-04
Python開發(fā)企業(yè)微信機(jī)器人每天定時發(fā)消息實例
這篇文章主要介紹了Python開發(fā)企業(yè)微信機(jī)器人每天定時發(fā)消息實例,需要的朋友可以參考下2020-03-03
Pytorch自己加載單通道圖片用作數(shù)據(jù)集訓(xùn)練的實例
今天小編就為大家分享一篇Pytorch自己加載單通道圖片用作數(shù)據(jù)集訓(xùn)練的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
Django 實現(xiàn)將圖片轉(zhuǎn)為Base64,然后使用json傳輸
這篇文章主要介紹了Django 實現(xiàn)將圖片轉(zhuǎn)為Base64,然后使用json傳輸,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

