執行緒安全與鎖

2021-10-14 02:02:25 字數 405 閱讀 8446

1> 原子操作 : 操作只有一步,不會被其他的操作打斷;

2> 系統一般會帶有一些原子操作的函式留給使用者使用,但是數量較少,並且一般只能用於簡單特定的場合

1> 鎖就是乙個flag,他的作用是說現在某個資源正在被某個執行緒使用,別的執行緒都別想輕易的拿去使用,巨集觀上表現就好像是給這些資源新增了乙個鎖,被鎖住的資源自然就不可以被其他的執行緒訪問了;

2>什麼是同步?

3> 鎖—二元訊號量

4> 鎖—多元訊號量

訊號量減1

如果訊號量小於0,那麼進入等待狀態,否則執行該執行緒.

訊號量加1

如果訊號量不小於1,喚醒乙個等待的執行緒

5> 鎖—互斥量

6> 鎖—臨界區

7> 鎖—讀寫鎖

執行緒安全與鎖優化

樂觀鎖 cas aba 版本號 atomicstampedreference 時間戳atomicmarkablereference boolean 可重入 絕對執行緒安全,不依賴共享資料 使用引數,區域性變數 自旋鎖 認為鎖很快釋放,占用cpu迴圈獲取鎖,超過一定次數 時間 再掛起執行緒,自旋次數上...

JVM執行緒安全與鎖優化

1.不可變 不可變的物件一定是執行緒安全的。如string類。2.絕對執行緒安全 3.相對執行緒安全 4.執行緒相容 5.執行緒對立 1.互斥同步 阻塞式同步 1 同步指的是 多個執行緒併發訪問共享資料時,保證共享資料在同一時刻只能被乙個執行緒使用。2 互斥指的是 同步的手段。如 臨界區 互斥量和訊...

執行緒安全與同步 鎖優化

無同步 a.可重入 b.threadlocal 互斥同步 阻塞同步 synchronized lock lock的優勢 可中斷 可有多個newcondition 自定義是否公平鎖 非阻塞同步 cas 機器指令實現 unsafe loop cas cas問題 a.aba問題 解決 加鎖 b.迴圈等待問...