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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java高并发(十二)并发容器J.U.C

發布時間:2024/9/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java高并发(十二)并发容器J.U.C 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

并發容器是JDK提供的一個包名:java.util.concurrent

ArrayList -> CopyOnWriteArrayList

CopyOnWriteArrayList是線程安全的,寫操作時復制,當有新元素添加到CopyOnWriteArrayList時先從原有的list中拷貝出來,然后在新的list上寫操作,寫完之后將原來的list指向新的list,整個操作都是在鎖的保護下進行的,這樣做為了防止多線程下多個add操作時產生多個副本,導致最終的數據不是我們期望的。

CopyOnWriteArrayList有幾個缺點:

  • 由于寫操作時需要拷貝數組,因此比較消耗內存。當元素內容比較多時會導致Full GC
  • 不能用于實時讀的場景,拷貝數組需要時間,所以調用一個set操作后,讀取到的數據還可能是舊的,雖然能做到最終一致性,但是無法滿足實時性要求。因此CopyOnWriteArrayList更適合讀多寫少的場景。如果不清楚add或者set多少次操作,這個CopyOnWriteArrayList最好慎用。
  • HashSet、TreeSet->CopyOnWriteArraySet、ConcurrentSkipListSet

    CopyOnWriteArraySet同樣也是線程安全的,底層實現是CopyOnWriteArrayList,因此CopyOnWriteArraySet適合大小比較小的set集合只讀操作大于寫操作,因為需要復制基礎數組,所以對于可變的操作(add set)的開銷大。使用迭代器的迭代速度很快,而且不會有線程安全問題。

    ConcurrentSkipListSet與TreeSet用一樣,是支持自然排序的,可以在構造時自定義比較器。在多線程情況下ConcurrentSkipListSet里面的contains()、add()、remove()是線程安全的,多個線程可以并發的執行插入移除和訪問操作,但是對于批量操作例如addAll(),removeAll(),retainAll()、containsAll()并不能保證以原子方式執行,這些操作可以被其他線程打斷,需要額外增加鎖才行,因為他們實現方式是分別調用contains()、add()、remove()的。因為并發容器只能保證每一次的contains()、add()、remove()操作時原子性的,而不能保證每一次批量操作都不會被其他線程打斷。也就是多個add,多個remove操作時有其他線程進來。

    HashMap、TreeMap -> ConcurrentHashMap、ConcurrentSkipListMap

    ConcurrentHashMap不允許null,在實際的應用中除了少數的插入操作和刪除操作外,絕大部分我們使用map都是使用讀取操作,而且讀操作大多數都是成功的,基于這個前提,ConcurrentHashMap針對讀操作做了大量的優化,因此這個類具有很高的并發性,高并發場景下有很好的表現。

    ConcurrentSkipListMap是TreeMap的線程安全版本。內部是使用skipList跳表的結構實現的。ConcurrentHashMap的存取速度是ConcurrentSkipListMap的4倍左右,但是ConcurrentSkipListMap的key是有序的而ConcurrentHashMap是做不到的,ConcurrentSkipListMap支持更高的并發,ConcurrentSkipListMap的存取時間是與線程數無關的,在數據量一定的情況下并發線程數越多ConcurrentSkipListMap越能體現出優勢。

    在較低并發情況下,可以使用Collections.synchronizedSortedMap()來實現,也可以提供較好的效率。在高并發的情況下可以使用ConcurrentSkipListMap提供更高的并發度。要對鍵值對進行排序時可以使用ConcurrentSkipListMap。

    @Slf4j @ThreadSafe public class ConcurrentHashMapExample {// 請求總數public static int clientTotal = 5000;// 同時并發執行的線程數public static int threadTotal = 200;private static Map<Integer, Integer> map = new ConcurrentHashMap<>();public static void main(String[] args) throws InterruptedException {//線程池ExecutorService executorService = Executors.newCachedThreadPool();//定義信號量final Semaphore semaphore = new Semaphore(threadTotal);//定義計數器final CountDownLatch countDownLatch = new CountDownLatch(clientTotal);for(int i = 0; i < clientTotal; i++) {final int count = i;executorService.execute(() ->{try {semaphore.acquire();update(count);semaphore.release();} catch (InterruptedException e) {log.error("exception", e);}countDownLatch.countDown();});}countDownLatch.await();executorService.shutdown();log.info("size:{}",map.size()) ;}public static void update(int i) {map.put(i,i);}}

    輸出結果正確。

    ?concurrentSkipListMap:

    private static Map<Integer, Integer> map = new ConcurrentSkipListMap<>();

    J.U.C

    安全共享對象策略 - 總結

    • 線程限制:一個被線程限制的對象,由線程獨占,并且只能被占有它的線程修改。
    • 共享只讀:一個共享只讀的對象,在沒有額外同步的情況下,可以被多個線程并發訪問,但是任何線程都不能修改它。
    • 線程安全對象:一個線程安全的對象或者容器,在內部通過同步機制來保證線程安全,所以其他線程無需額外的同步就可以通過公共接口隨意訪問它。
    • 被守護對象:被守護對象只能通過獲取特定的鎖來訪問。

    總結

    以上是生活随笔為你收集整理的java高并发(十二)并发容器J.U.C的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 97热久久 | 成人av免费看 | 丰满人妻一区二区三区53视频 | a天堂中文在线 | 密臀av| 亚洲九九九九 | 亚洲精品久久久久久国 | 天天综合网在线 | 国产精品第 | 中国无码人妻丰满熟妇啪啪软件 | 华人永久免费视频 | 2021中文字幕 | 国产精品调教视频 | 国产一区二区视频播放 | 操欧美女人 | 日韩大片免费观看 | 中文亚洲av片不卡在线观看 | 日本不卡一区在线观看 | 视频在线观看视频 | 在线播放91灌醉迷j高跟美女 | 无套内谢少妇毛片 | 性感美女被爆操 | 亚洲黄色影院 | 天天摸天天做天天爽 | 最近最新mv字幕观看 | av播放网站 | 57pao成人国产永久免费视频 | 国产剧情一区二区 | 婷婷影院在线观看 | 四虎永久在线视频 | 色综合激情 | 久久影院午夜理论片无码 | 红桃视频隐藏入口 | 男生女生操操操 | 亚洲视频久久久 | 日本三级黄色大片 | 99精品国产免费 | 爱综合网| 天天摸天天做天天爽 | 成人p站在线观看 | xfplay5566色资源网站 | 野花成人免费视频 | 国产经典一区二区三区 | 污色视频 | 人乳videos巨大吃奶 | jzz在线观看| 亚洲国产图片 | 5a毛片 | 亚洲av午夜精品一区二区三区 | 游戏涩涩免费网站 | 瑟瑟av| 欧美日韩成人一区 | 麻豆国产一区二区 | 五月天导航 | 一区二区视频在线免费观看 | 少妇在军营h文高辣 | 日本三级生活片 | 日韩特级毛片 | 久久久久亚洲av片无码下载蜜桃 | 国产婷婷一区二区 | 亚洲区一区二区三区 | 在线观看的网站 | 久久亚洲无码视频 | 黑料视频在线 | 在线观看成人动漫 | 日本中文字幕高清 | 91成人在线观看高潮 | 国产偷自拍视频 | 日本a级片在线播放 | 久色| 亚洲av毛片成人精品 | 国产精品久久久久久在线观看 | 中文字幕欧美日韩 | 有奶水的迷人少妇 | 欧美一级黄视频 | 四虎永久在线精品免费一区二区 | 精品国产乱子伦 | 久久久久久人妻一区二区三区 | 国精产品99永久一区一区 | 91久久国产视频 | 国产乱妇乱子 | 好吊操精品视频 | 欧美久久一区 | 韩国激情呻吟揉捏胸视频 | 7777久久亚洲中文字幕 | 女女h百合无遮涩涩漫画软件 | 不卡成人 | 歪歪视频在线观看 | 亚洲天堂999 | 超碰在线观看av | 欧美偷拍一区二区 | 精品国产理论 | 国产精品亚州 | 人妻射精一区二区 | 91在线视频播放 | 欧美精品www | 欧美黑人精品一区二区 | 日韩欧美在线观看一区二区 | 国产一区二区毛片 |