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