線程同步
保證同一時刻只能有一個線程去操作全局變量同步:就是協(xié)同步調(diào)按預(yù)定的先后次序進行運行
比如如:你說完隶校,我再說喝检,好比現(xiàn)實生活中的對講機
線程同步的方式
1.線程等待(join)
2.互斥鎖:對共享數(shù)據(jù)進行鎖定累贤,保證同一時刻只有一個線程去操作
注意:互斥鎖是多個線程一起去搶构哺,搶到鎖的線程先執(zhí)行(誰先搶到不知道)底燎,沒有搶到鎖的線程需要等待蠢络,等互斥鎖使用完釋放后禾唁,其它等待的線程再去搶這個鎖.
互斥鎖的使用步驟:
# 創(chuàng)建鎖
mutex = threading.Lock()
# 上鎖
mutex.acquire()
#這里編寫代碼保證同一時刻只能有一個線程去操作效览,對共享數(shù)據(jù)進行鎖定
# 排放鎖
mutex.release()
注意點:
acquire和 release方法之間的代碼同一時刻只能有一個線程去操作
如果在調(diào)用 acquire方法的時候其他線程已經(jīng)使用了這個互斥鎖,那么此時 acquire方法會堵塞蟀俊,直到這個互斥鎖釋放后才能再次上鎖钦铺。