線程 -- 線程同步(join和互斥鎖)

線程同步

保證同一時刻只能有一個線程去操作全局變量同步:就是協(xié)同步調(diào)按預(yù)定的先后次序進(jìn)行運行

比如如:你說完,我再說,好比現(xiàn)實生活中的對講機

線程同步的方式

1.線程等待(join)

2.互斥鎖:對共享數(shù)據(jù)進(jìn)行鎖定,保證同一時刻只有一個線程去操作

注意:互斥鎖是多個線程一起去搶,搶到鎖的線程先執(zhí)行(誰先搶到不知道),沒有搶到鎖的線程需要等待,等互斥鎖使用完釋放后,其它等待的線程再去搶這個鎖.

互斥鎖的使用步驟:

# 創(chuàng)建鎖

mutex = threading.Lock()

# 上鎖

mutex.acquire()

#這里編寫代碼保證同一時刻只能有一個線程去操作,對共享數(shù)據(jù)進(jìn)行鎖定

# 排放鎖

mutex.release()

注意點:

acquire和 release方法之間的代碼同一時刻只能有一個線程去操作

如果在調(diào)用 acquire方法的時候其他線程已經(jīng)使用了這個互斥鎖,那么此時 acquire方法會堵塞,直到這個互斥鎖釋放后才能再次上鎖。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容