最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中同步與并發(fā)用法分析

 更新時(shí)間:2015年06月08日 15:24:53   作者:liuzx32  
這篇文章主要介紹了Java中同步與并發(fā)用法,較為詳細(xì)的分析了java同步與并發(fā)所涉及的相關(guān)類與使用技巧,需要的朋友可以參考下

本文較為詳細(xì)的分析了Java中同步與并發(fā)的用法。分享給大家供大家參考。具體分析如下:

1.同步容器類包括兩部分:vector和hashtable

另一類是同步包裝類,由Collections.synchronizedXXX創(chuàng)建。同步容器對容器的所有狀態(tài)進(jìn)行串行訪問,從而實(shí)現(xiàn)線程安全。

它們存在如下問題:

a) 對于符合操作,需要額外的鎖保護(hù)。比如迭代,缺少則添加等條件運(yùn)算。
b) toString,hashCode,equals都會(huì)間接的調(diào)用迭代,都需要注意并發(fā)。
 
2.java5.0中的并發(fā)容器。

ConcurrentHashMap可以替代同步Map實(shí)現(xiàn)。

當(dāng)主要為讀操作時(shí),CopyOnWriteArrayList是List的同步實(shí)現(xiàn)。
同時(shí),增加了Queue和BlockingQueue:ConcurentLinkedQueue:FIFO隊(duì)列。
PriorityQueue:非并發(fā)的優(yōu)先級順序隊(duì)列。
BlockingQueue則增加了可阻塞的插入和獲取。

a) ConcurentHashMap:不是使用一個(gè)公共鎖,而是分離鎖。任意數(shù)量的讀線程可以并發(fā)訪問map,讀者和寫者也可以并發(fā)訪問Map,并且有限數(shù)量的寫還可以并發(fā)修改Map。但是,size和isEmpty語言被弱化,是估算值。

b) CopyOnWriteArrayList:迭代器保留一個(gè)底層基礎(chǔ)數(shù)組引用,改引用不會(huì)修改。
 
3.Synchronizer

a) 閉鎖(CountDownLatch)。構(gòu)造函數(shù)參數(shù)為n,通過countDown,n為0后,所有await的線程繼續(xù)執(zhí)行。

b) FutureTask:計(jì)算由Callable實(shí)現(xiàn),可以攜帶結(jié)果的Runnable。包括:等待,運(yùn)行和完成。

c) Semaphore:控制能夠同時(shí)訪問的活動(dòng)數(shù)量

d) CyclicBarrier:類似于閉鎖。閉鎖等待的是事件,關(guān)卡等待的是其他線程。初始n,Runnable r,n個(gè)線程都await(),當(dāng)n個(gè)線程都執(zhí)行完成后到達(dá)關(guān)卡時(shí),r執(zhí)行,關(guān)卡重置,n個(gè)線程繼續(xù)。

希望本文所述對大家的java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java利用MessageFormat實(shí)現(xiàn)短信模板的匹配

    Java利用MessageFormat實(shí)現(xiàn)短信模板的匹配

    這篇文章主要介紹了Java利用MessageFormat實(shí)現(xiàn)短信模板的匹配,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Springboot中的@Order如何使用

    Springboot中的@Order如何使用

    本文主要介紹了Springboot中的@Order如何使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過程

    SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過程

    這篇文章主要介紹了SpringCloud可視化鏈路追蹤系統(tǒng)Zipkin部署過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 使用Java接收和處理OpenTelemetry數(shù)據(jù)的完整指南

    使用Java接收和處理OpenTelemetry數(shù)據(jù)的完整指南

    在現(xiàn)代分布式系統(tǒng)中,OpenTelemetry 成為了一種常見的標(biāo)準(zhǔn),用于跟蹤和監(jiān)控應(yīng)用程序的性能和行為,OTLP是 OpenTelemetry 社區(qū)定義的一種數(shù)據(jù)傳輸協(xié)議,文將介紹如何使用 Java 編寫代碼來接收和處理 OTLP 數(shù)據(jù),需要的朋友可以參考下
    2024-04-04
  • java通過MySQL驅(qū)動(dòng)攔截器實(shí)現(xiàn)執(zhí)行sql耗時(shí)計(jì)算

    java通過MySQL驅(qū)動(dòng)攔截器實(shí)現(xiàn)執(zhí)行sql耗時(shí)計(jì)算

    本文主要介紹了java通過MySQL驅(qū)動(dòng)攔截器實(shí)現(xiàn)執(zhí)行sql耗時(shí)計(jì)算,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 解決fastjson泛型轉(zhuǎn)換報(bào)錯(cuò)的解決方法

    解決fastjson泛型轉(zhuǎn)換報(bào)錯(cuò)的解決方法

    這篇文章主要介紹了解決fastjson泛型轉(zhuǎn)換報(bào)錯(cuò)的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 使用@Autowired可以注入ApplicationContext

    使用@Autowired可以注入ApplicationContext

    這篇文章主要介紹了使用@Autowired可以注入ApplicationContext問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • java中的?HashMap?的加載因子是0.75原理探討

    java中的?HashMap?的加載因子是0.75原理探討

    在Java中,HashMap是一種常用的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)鍵值對,它的設(shè)計(jì)目標(biāo)是提供高效的插入、查找和刪除操作,在HashMap的實(shí)現(xiàn)中,加載因子(Load?Factor)是一個(gè)重要的概念,本文將探討為什么Java中的HashMap的加載因子被設(shè)置為0.75
    2023-10-10
  • java中jdk代理和cglib代理使用步驟詳解

    java中jdk代理和cglib代理使用步驟詳解

    這篇文章主要給大家介紹了關(guān)于java中jdk代理和cglib代理使用步驟的相關(guān)資料,JDK代理和CGLIB是Java中兩種常見的代理實(shí)現(xiàn)方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Java實(shí)現(xiàn)abc字符串排列組合

    Java實(shí)現(xiàn)abc字符串排列組合

    這篇文章主要為大家詳細(xì)介紹了JAVA實(shí)現(xiàn)abc字符串的排列組合,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論

酉阳| 灵璧县| 拉孜县| 康乐县| 扬中市| 湖南省| 庄浪县| 墨玉县| 房产| 长兴县| 兴安县| 巫溪县| 克拉玛依市| 天祝| 迁安市| 江源县| 镇沅| 平罗县| 花莲县| 遂宁市| 楚雄市| 丘北县| 育儿| 叙永县| 长垣县| 兰溪市| 多伦县| 久治县| 美姑县| 博罗县| 滨州市| 漳州市| 图片| 广饶县| 榆树市| 定边县| 常德市| 乌兰浩特市| 和龙市| 博客| 邓州市|