併發中的各種鎖

2022-07-04 15:45:13 字數 573 閱讀 8232

1.執行緒是否要鎖住同步資源:鎖住---悲觀鎖;不鎖住---樂觀鎖

2.鎖住同步資源失敗執行緒是否要阻塞:不阻塞---自旋鎖/適應性自旋鎖

3.synchronized關鍵字優化之後的幾個狀態流**無鎖-->偏向鎖-->輕量級鎖-->重量級鎖

4.多個執行緒競爭鎖時是否排隊:排隊--公平鎖;先嘗試插隊(直接搶鎖)插隊失敗再排隊---非公平鎖

5.乙個執行緒的多個流程能不能獲取同一把鎖:能--可重入鎖(拿到鎖之後,再次遇到這把鎖直接可以進去,不用再去搶);不能--不可重入鎖

6.多個執行緒能否共享一把鎖:能--共享鎖(讀鎖一般就是共享的。大家都可以來讀資料);不能--排他鎖(寫鎖,肯定不能共享,修改的操作只能乙個乙個來完成)

python鎖 python中的各種鎖

一 全域性直譯器鎖 gil 1 什麼是全域性直譯器鎖 在同乙個程序中只要有乙個執行緒獲取了全域性直譯器 cpu 的使用許可權,那麼其他的執行緒就必須等待該執行緒的全域性直譯器 cpu 使 用權消失後才能使用全域性直譯器 cpu 即時多個執行緒直接不會相互影響在同乙個程序下也只有乙個執行緒使用cpu,...

iOS 中的各種鎖

在日常開發過程中,為了提公升程式執行效率,以及使用者體驗,我們經常使用多執行緒。在使用多執行緒的過程中,難免會遇到資源競爭問題。我們採用鎖的機制來確保執行緒安全。執行緒安全 當乙個執行緒訪問資料的時候,其他的執行緒不能對其進行訪問,直到該執行緒訪問完畢。即,同一時刻,對同乙個資料操作的執行緒只有乙個...

java中的各種鎖

在 jdk 1.6 之前,synchronized 是重量級鎖,效率低下。從 jdk 1.6 開始,synchronized 做了很多優化,如偏向鎖 輕量級鎖 自旋鎖 適應性自旋鎖 鎖消除 鎖粗化等技術來減少鎖操作的開銷。synchronized 同步鎖一共包含四種狀態 無鎖 偏向鎖 輕量級鎖 重量...