我所知道的線程

  • Concurrent(未完成)

  • 創(chuàng)建一個(gè)線程

  • extend Thread
  • implements Runnable
工具類創(chuàng)建線程 (未完成)
  • synchronied 修飾方法和修飾代碼塊(在阿里Java手冊(cè)中提到能鎖代碼塊就不要所方法盡量提高性能)

  1. 修飾方法時(shí):this 引用的當(dāng)前實(shí)例持有鎖
sychronized void method(){...}
  1. 修飾代碼塊: 指定對(duì)象
sychronized(object){...}
  • sleep、wait、join、yield

  1. wait 一定要有鎖,當(dāng)線程wait時(shí),釋放鎖進(jìn)入等待隊(duì)列,用 notify 和 notifyAll 喚醒。wait 和 notify/notifyAll 一定要同步,否則會(huì)出現(xiàn) IllegalMonitorStateException異常。
  2. sleep 是線程進(jìn)入睡眠狀態(tài),持有鎖,并不是釋放鎖。
  3. join 是等待上一個(gè)線程結(jié)束,相當(dāng)于收拾好自己的箱子再去干其他事。
  4. yield 是放棄對(duì)已經(jīng)持有鎖的代碼塊/方法,重新競(jìng)爭(zhēng),再次持有鎖的不一定是上一個(gè)持有鎖的線程。
  • volatile

volatile其實(shí)并不能保證變量的原子性,他其實(shí)就是在修改一個(gè)變量之后,并不把修改后的寫(xiě)入緩存區(qū),而是直接呈現(xiàn)出來(lái)的及時(shí)性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容