執行緒互斥鎖

2022-09-02 18:39:09 字數 979 閱讀 1392

執行緒互斥鎖:降低效率,保證資料安全

執行緒:資料共享

修改共享資料,資料不安全

from threading import

thread,lock

import

time

n=100

deftask():

global

n temp=n

time.sleep(0.1)

n=temp-1

if__name__ == '

__main__':

t_l=

for i in range(100):

t=thread(target=task)

t.start()

for t in

t_l:

t.join()

print

(n)結果:

99正確結果應該是0

舉例解決辦法加鎖

from threading import

thread,lock

import

time

mutex=lock()

n=100

deftask():

global

n mutex.acquire()

temp=n

time.sleep(0.1)

n=temp-1mutex.release()

if__name__ == '

__main__':

t_l=

for i in range(100):

t=thread(target=task)

t.start()

for t in

t_l:

t.join()

print

(n)結果:

0雖然執行效率變低了,但是資料安全了

互斥鎖

執行緒 互斥鎖

include include include include include 1.靜態初始化,當動態初始化時,遮蔽靜態初始化 pthread mutex t mutex pthread mutex initializer 2.動態初始化 pthread mutex t mutex int lock...

執行緒同步與互斥 互斥鎖

在多工作業系統中,同時執行的多個任務可能都需要使用同一種資源。這個過程有點類似於,公司部門裡,我在使用著印表機列印東西的同時 還沒有列印完 別人剛好也在此刻使用印表機列印東西,如果不做任何處理的話,列印出來的東西肯定是錯亂的。下面我們用程式模擬一下這個過程,執行緒一需要列印 hello 執行緒二需要...

執行緒同步與互斥 互斥鎖

在多工作業系統中,同時執行的多個任務可能都需要使用同一種資源。這個過程有點類似於,公司部門裡,我在使用著印表機列印東西的同時 還沒有列印完 別人剛好也在此刻使用印表機列印東西,如果不做任何處理的話,列印出來的東西肯定是錯亂的。下面我們用程式模擬一下這個過程,執行緒一需要列印 hello 執行緒二需要...