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.迴圈等待問...