日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

并发编程-14线程安全策略之并发容器(J.U.C)中的集合类

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 并发编程-14线程安全策略之并发容器(J.U.C)中的集合类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • J.U.C總覽
  • 腦圖
  • 概述
  • 并發容器特性
  • 示例
    • ArrayList對應的線程安全的并發容器類CopyOnWriteArrayList (線程安全)
    • HashSet對應的線程安全的并發容器類CopyOnWriteArraySet (線程安全)
    • TreeSet對應的線程安全的并發容器類 ConcurrentSkipListSet (線程安全)
    • TreeMap對應的線程安全的并發容器類ConcurrentSkipListMap (線程安全)
    • HashMap對應的線程安全的并發容器類ConcurrentHashMap (線程安全)
  • 代碼

J.U.C總覽


腦圖

同步容器:

并發容器


概述

同步容器是通過synchronized來實現同步的,所以性能較差。而且同步容器也并不是絕對線程安全的,在一些特殊情況下也會出現線程不安全的行為。那么有沒有更好的方式代替同步容器呢?----> 那就是并發容器,有了并發容器后同步容器的使用也越來越少的,大部分都會優先使用并發容器(J.U.C). 下篇博文我們討論下J.U.C


并發容器特性

  • CopyOnWriteArrayList、CopyOnWriteArraySet因為需要copy數組,需要消耗內存,可能引發yonggc或者 fullgc,并且不能做到實時性,適合讀多寫少的情景

  • ConcurrentSkipListSet 支持自然排序,并且可以在構造的時候自己定義比較器,可以保證每一次的操作是原子性的,比如add()、remove等,但是對于批量操作,如addAll()等并不能保證原子性(需要自己手動做同步操作,如加鎖等)

  • ConcurrentHashMap針對讀操作做了大量的優化,這個類具有特別高的并發性,高并發場景下有特別好的表現

  • ConcurrentSkipListMap與ConcurrentHashMap相比的key是有序的,它支持更高的并發,它的存取時間和線程數是沒有關系的,在一定的數據量下,并發的線程越多ConcurrentSkipListMap越能體現出它的優勢來


示例

ArrayList對應的線程安全的并發容器類CopyOnWriteArrayList (線程安全)

運行結果:線程安全


HashSet對應的線程安全的并發容器類CopyOnWriteArraySet (線程安全)

運行結果:線程安全


TreeSet對應的線程安全的并發容器類 ConcurrentSkipListSet (線程安全)

運行結果:線程安全


TreeMap對應的線程安全的并發容器類ConcurrentSkipListMap (線程安全)

運行結果:線程安全


HashMap對應的線程安全的并發容器類ConcurrentHashMap (線程安全)

運行結果:線程安全


代碼

https://github.com/yangshangwei/ConcurrencyMaster

總結

以上是生活随笔為你收集整理的并发编程-14线程安全策略之并发容器(J.U.C)中的集合类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。