-
Concurrent(未完成)
-
創(chuàng)建一個線程
- extend Thread
- implements Runnable
工具類創(chuàng)建線程 (未完成)
-
synchronied 修飾方法和修飾代碼塊(在阿里Java手冊中提到能鎖代碼塊就不要所方法盡量提高性能)
- 修飾方法時:this 引用的當(dāng)前實例持有鎖
sychronized void method(){...}
- 修飾代碼塊: 指定對象
sychronized(object){...}
-
sleep巩踏、wait评汰、join七嫌、yield
- wait 一定要有鎖,當(dāng)線程wait時涧郊,釋放鎖進入等待隊列,用 notify 和 notifyAll 喚醒盖奈。wait 和 notify/notifyAll 一定要同步恶守,否則會出現(xiàn) IllegalMonitorStateException異常。
- sleep 是線程進入睡眠狀態(tài)破加,持有鎖俱恶,并不是釋放鎖。
- join 是等待上一個線程結(jié)束范舀,相當(dāng)于收拾好自己的箱子再去干其他事合是。
- yield 是放棄對已經(jīng)持有鎖的代碼塊/方法,重新競爭锭环,再次持有鎖的不一定是上一個持有鎖的線程聪全。
-
volatile
volatile其實并不能保證變量的原子性,他其實就是在修改一個變量之后辅辩,并不把修改后的寫入緩存區(qū)荔烧,而是直接呈現(xiàn)出來的及時性。
-
幾種設(shè)計模式(未完成)