多執行緒鎖的分類說明

2021-10-09 09:40:00 字數 866 閱讀 7492

synchronized 可重入、重型鎖 、鎖公升級

volatile 可見,禁止指令重排

atomic integer

reetrantlock

countdownlatch 倒數等待執行緒計數器,倒計數器為0時執行緒執行。

cyclicbarrier 滿員執行緒執行。

marriage phar 階段

跨方法加鎖

unsafeinstance. reflect.monitorenter/exit

鎖公升級過程

無鎖偏向鎖

輕量級鎖 執行緒競爭不是很激烈,短暫等待會有自旋

重量級鎖 使用系統mutex互斥鎖

semaphore 訊號量,應用場景是限流場景,如hystrix

semaphore. acquire()獲取鎖

semaphore. release()釋放鎖

aqs 下有乙個佇列wait set

head <- pre -node- next->tail

countdownlatch 子執行緒全部準備好或者執行完,主線程再開始執行,可以理解為彙總。

cyclicbarrer柵欄到達多少個執行緒才執行~可以重複使用

atomic aba問題 加版本號

blocking queue

arrayblockingqueue

linkedblockingqueue

priorityblockingqueue

delayqueue

jdk1.7-hashmap 結構陣列+鍊錶,又可能產生死鎖,hashmap在多執行緒場景夏,擴容期間存在節點位置互換指標引用的問題,引起死鎖。

jdk1.8hashmap可能產生資料丟失,多執行緒put值覆蓋。

多執行緒鎖的分類和概述

一般樂觀鎖和悲觀鎖都是在資料庫層面的。公平和非公平鎖是根據執行緒的搶占機制來分的,如果是公平鎖,則執行緒獲取鎖的順序是按照執行緒請求鎖的時間早晚來決定的,來的晚的進阻塞佇列,可以把公平鎖理解成排隊,而非公平鎖則是大家一起搶,不管你先來後到,誰搶到了算誰的,可以理解成平時咱們擠公交和擠地鐵。reent...

多執行緒的鎖

由於併發的問題,需要加鎖 當多個執行緒同時進行任務時,為了保證不會有多個執行緒同時對同乙個資料進行操作造成不可預料的後果,所以有了鎖的概念,我們通過鎖來使多執行緒任務更加安全。lock threading.lock cond threading.condition lock lock 多執行緒的鎖例...

python多執行緒鎖 python的多執行緒程式設計之鎖

1 背景概述 在python中,要保證資料的正確性,並且自己對資料進行控制,對資料進行加鎖並且自己釋放鎖。多執行緒的主要目的為了提高效能與速度,用在無關的方向是最好的,例如在使用爬蟲的時候,可以使用多執行緒來進行爬取資料,因為在這些執行緒之間沒有需要共同操作的資料,從而在這個時候利用是最好的。如果需...