atom(不可分割)
syn基於阻塞的鎖的機制,1、被阻塞的執行緒優先順序很高,2、拿到鎖的執行緒一直不釋放鎖怎麼辦?3、大量的競爭,消耗cpu,同時帶來死鎖或者其他安全。
cas的原理
cas(compare and swap),指令級別保證這是乙個原子操作
迴圈(死迴圈,自旋)裡不斷的進行cas操作
cas的問題
a---》b----》a,版本號: a1àb2-àa3
cas操作長期不成功,cpu不斷的迴圈,
atomicmarkablereference,boolean 有沒有動過
atomicstampedreference 動過幾次
併發程式設計學習筆記
併發程式設計第2章,基礎篇 2.1執行緒安全 1併發程式設計即是要控制對共享的可變的變數的訪問操作順序 2保證同步的方法,在語法 級別來說,可以使用synchronized,volatile,或者是現式的鎖,或者使用原子變數 3好的設計是避免執行緒危險的良方,使用oo的方法盡量避免執行緒的隱患。4執...
java併發程式設計學習(3)
銀行排隊叫號的場景如圖所示 有乙個出票機,按順序出票。有多個櫃檯叫號。對於這樣的場景,實現可以分為2部分,出票機和櫃檯。出票機public class ticketwindow implements runnable catch interruptedexception e 新建ticketwind...
3 併發程式設計
程序 程序指的就是程式執行的過程,是乙個動態的概念 程式 程式就是一系列的 檔案,是乙個靜態的概念 程序也可以說成是作業系統幹活的過程,就是作業系統控制硬體來執行應用程式的過程 程序是作業系統最核心的概念,研究進行就是在研究作業系統 一 作業系統的作用 1 隱藏醜陋複雜的硬體介面,提供良好的抽象介面...