python同步应用:多个线程有序执行
可以使用互斥鎖完成多個任務(wù),有序的進程工作,這就是線程的同步
from threading import Thread, Lock
import time
mutex1= Lock()? # 創(chuàng)建一個互斥鎖
mutex2= Lock()? # 創(chuàng)建一個互斥鎖
mutex3= Lock()? # 創(chuàng)建一個互斥鎖
?
?
def fun1():
??? while 1:
??????? mutex1.acquire()? # 阻塞
??????? print("線程1 執(zhí)行")
??????? mutex2.release()?? # 釋放鎖2,讓線程2繼續(xù)執(zhí)行
??????? time.sleep(0.1)
?
?
def fun2():
??? while 1:
??????? mutex2.acquire()? # 阻塞
??????? print("線程2 執(zhí)行")
??????? mutex3.release()?? # 釋放鎖3,讓線程3繼續(xù)執(zhí)行
??????? time.sleep(0.1)
?
?
def fun3():
??? while 1:
??????? mutex3.acquire()? # 阻塞
??????? print("線程3 執(zhí)行")
??????? mutex1.release()?? # 釋放鎖1,讓線程1繼續(xù)執(zhí)行
??????? time.sleep(0.1)
?
t1 =Thread(target=fun1)? # 創(chuàng)建一個線程對象
t2 =Thread(target=fun2)? # 創(chuàng)建一個線程對象
t3 =Thread(target=fun3)? # 創(chuàng)建一個線程對象
?
mutex2.acquire()? # 將鎖2設(shè)置為上鎖,線程2不能運行
mutex3.acquire()? # 將鎖2設(shè)置為上鎖,線程2不能運行
?
t1.start()? # 開啟線程的執(zhí)行
t2.start()
t3.start()
?
t1.join()? # 回收線程資源
t2.join()
t3.join()
總結(jié)
以上是生活随笔為你收集整理的python同步应用:多个线程有序执行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css hover变成手_web前端入门
- 下一篇: python中的多线程-threadin