中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java線程相關知識點有哪些

發布時間:2021-11-24 15:28:19 來源:億速云 閱讀:189 作者:iii 欄目:大數據

這篇文章主要講解了“java線程相關知識點有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java線程相關知識點有哪些”吧!

cas compare and swap(exchange):

  1. 讀取當前值

  2. 計算結果值

  3. 比較當前值和內存值

  4. 更新新值

  5. ABA問題,增加額外字段

  6. 底層原語 lock(硬件鎖信號) cmpxchg

java對象內存布局

對象頭(markword ,class point,在64位系統上jvm開啟壓縮為4字節,不開啟為8字節),(數組長度-4字節) 實例數據,對齊(按系統總線位數補齊提高效率),見下圖 java線程相關知識點有哪些

鎖升(降)級過程

new->偏向鎖->輕量級鎖(無鎖,自旋鎖,自適應自旋鎖)->重量級鎖

  1. 偏向鎖(默認延遲4秒加)->在對象的markword中添加指向鎖對象的指針

  2. 輕量級鎖->競爭線程用cas的方式競爭指向鎖對象

  3. 重量級鎖->用戶態向內核態申請系統鎖,申請到以后其他競爭線程全部處于隊列狀態(降低資源消耗)

  4. 鎖降級:一般發生在gc的情況下,所以這時候降級失去意義

  5. 鎖消除:引用不會被其他線程調用時,隱性消除內部鎖

  6. 鎖粗化:對一組對象相同的操作,值加鎖最外層操作(如 while(i<100) {...})

  7. 超線程:一組ALU,2組registers+pc

synchronized 實現過程

  1. 代碼層:synchronized

  2. 源碼monitorenter monitorexit

  3. 鎖升級

  4. lock cmpxchg

緩存行對齊

在程序讀取數據的時候是按塊來讀取提高效率(64字節,根據cpu)
CPU 1,2級緩存屬于核,3級緩存共享
java線程相關知識點有哪些

volatile關鍵字作用

  1. 線程可見性

  2. 禁止代碼重排,如下描述

  • 內存屏障 保證語句順序執行,最底層依然是lock

  • 寫寫屏障 volatile 寫操作 寫讀屏障

  • 讀讀屏障 volatile 讀操作 讀寫屏障

強軟弱虛引用
  • 強引用: Object o = new Object();

  • 軟引用: SoftReference<Object> softReference = new SoftReference<>(new Object()); 堆空間不夠時會被回收,適用于緩存

  • 弱引用: WeakReference<Object> weakReference = new WeakReference<>(new Object()); 只要gc就會被回收,適用一次使用,緩存之類 ThreadLocal.entry使用的弱引用,使用ThreadLocal 時,須調用一次ThreadLocal.remove釋放其中的map的值,因為回收ThreadLocal時只回收key,entry不會被回收

  • 虛引用: PhantomReference<Object> phantomReference = new PhantomReference(new Object(),new ReferenceQueue()); 管理堆外內存,比如nio,zero copy

感謝各位的閱讀,以上就是“java線程相關知識點有哪些”的內容了,經過本文的學習后,相信大家對java線程相關知識點有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永嘉县| 清丰县| 临安市| 和龙市| 嫩江县| 宜兰市| 永城市| 兴隆县| 秭归县| 白山市| 德阳市| 禄劝| 通榆县| 三都| 扎鲁特旗| 罗山县| 弥渡县| 刚察县| 阳泉市| 阳城县| 井陉县| 司法| 新源县| 高尔夫| 亚东县| 海南省| 南平市| 土默特左旗| 怀宁县| 山东省| 温泉县| 永州市| 行唐县| 邻水| 清徐县| 思茅市| 阿鲁科尔沁旗| 葫芦岛市| 赤壁市| 红桥区| 北宁市|