亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談Java線程并發(fā)知識點(diǎn)

 更新時間:2016年12月20日 17:30:05   作者:WindWant  
本文主要對Java線程并發(fā)的知識點(diǎn)進(jìn)行簡單介紹。具有很好的參考價值,需要的朋友一起來看下吧

發(fā)布:一個對象是使它能夠被當(dāng)前范圍之外的代碼所引用:

常見形式:將對象的的引用存儲到公共靜態(tài)域;非私有方法中返回引用;發(fā)布內(nèi)部類實例,包含引用。

逃逸:在對象尚未準(zhǔn)備好時就將其發(fā)布。

不要讓this引用在構(gòu)造函數(shù)中逸出。例,在構(gòu)造函數(shù)中啟動線程,線程會包含對象的引用。

同步容器:對容器的所有狀態(tài)進(jìn)行穿行訪問,Vector、Hashtable,Cllections.synchronizedMap|List

并發(fā)容器:ConcurrentHashMap,CopyOnWriteArrayList,ConcurrentLinkedQueue、BlockingQueue

list 隨機(jī)訪問特性的優(yōu)勢。

Blocking 增加了可阻塞的get set操作

ConcurrentHashMap:分離鎖,為并發(fā)訪問帶來的高的吞吐量,同時幾乎沒有損失單個線程的訪問性能。返回弱一致性的迭代器。

迭代器的弱一致性,在迭代器生成以后會檢測容器的修改變化。

并發(fā)容器 size(), isEmpty() 弱化,返回近似結(jié)果。

CopyOnWriteArrayList:每次修改容器時復(fù)制,適用迭代需求大于修改需求情況。

生產(chǎn)者消費(fèi)者模式,運(yùn)用有界阻塞隊列解耦生產(chǎn)者和消費(fèi)者的代碼。

Executor任務(wù)執(zhí)行框架,實現(xiàn)了生產(chǎn)者消費(fèi)者模式。

SynchronousQueue:put等待消費(fèi)者可用,take等待生產(chǎn)者可用,適用于消費(fèi)者充足的情景。

雙端隊列(deque)關(guān)聯(lián)于竊取工作模式(work stealing),區(qū)別于生產(chǎn)者消費(fèi)者模式中所有消費(fèi)者共享一個工作隊列,工作竊取模式每一個消費(fèi)者都有自己的雙端隊列,如果一個消費(fèi)者完成自己的全部工作,就可以偷取其它消費(fèi)者隊列隊尾的任務(wù)。

工作竊取模式適用于當(dāng)運(yùn)行到一個任務(wù)的某一個單元時,可能會識別出更多的任務(wù),如遍歷文件。

當(dāng)一個方法能夠拋出InterruptedException時,說明它是可阻塞方法。拋出或捕獲InterruptedException。

Synchronizer:同步者---semaphore、barrier、latch,封裝狀態(tài),決定線程在此狀態(tài)下的行為(通過或阻塞),提供操控狀態(tài)的方法,高效的等待同步者進(jìn)入期望的狀態(tài)。

latch閉鎖:延遲線程進(jìn)度直到線程到達(dá)一個終點(diǎn)狀態(tài),像一個一次性開關(guān)??梢杂脕泶_保特定活動直到其它活動完成才發(fā)生。

例如:

  • 確保一個計算不會被執(zhí)行,直到需要的資源都被初始化。
  • 確保一個服務(wù)不會被開始,直到依賴的其它服務(wù)已經(jīng)開始。
  • 等待,直到活動的所有部分都為繼續(xù)處理做好準(zhǔn)備。

FutureTask可以作為閉鎖,抽象的可攜帶結(jié)果的計算,通過callable實現(xiàn)。Future.get依賴于任務(wù)的執(zhí)行狀態(tài),任務(wù)運(yùn)行完成則返回結(jié)果,否則一直等待,

Executor框架利用FutureTask完成異步任務(wù)。

semapher信號量:用來控制能夠同時訪問某特定資源的活動數(shù)量或同時執(zhí)行某一給定操作的數(shù)量,資源池,容器邊界。

barrier關(guān)卡:類似于閉鎖,區(qū)別所有的線程必須同時到達(dá)關(guān)卡,才能繼續(xù)處理,閉鎖等待的是時間,關(guān)卡等待的是其它線程,重復(fù)使用。通過關(guān)卡,await會為每一個線程返回唯一的到達(dá)索引號,可以用它來選舉產(chǎn)生一個領(lǐng)導(dǎo),在下一次迭代中承擔(dān)一些特殊任務(wù)。

Exchanger一種關(guān)卡的形式。

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • Java微信公眾平臺開發(fā)(7) 公眾平臺測試帳號的申請

    Java微信公眾平臺開發(fā)(7) 公眾平臺測試帳號的申請

    這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺開發(fā)第七步,微信公眾平臺測試帳號的申請,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 超個性修改SpringBoot項目的啟動banner的方法

    超個性修改SpringBoot項目的啟動banner的方法

    這篇文章主要介紹了超個性修改SpringBoot項目的啟動banner的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Java字符串中刪除指定子字符串的方法簡介

    Java字符串中刪除指定子字符串的方法簡介

    這篇文章主要介紹了Java字符串中刪除指定子字符串的方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • java awt實現(xiàn)計算器功能

    java awt實現(xiàn)計算器功能

    這篇文章主要為大家詳細(xì)介紹了java awt實現(xiàn)計算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Spring中的循環(huán)依賴詳解

    Spring中的循環(huán)依賴詳解

    這篇文章主要介紹了Spring中的循環(huán)依賴詳解,  Spring 框架是一個流行的Java應(yīng)用程序框架,它提供了許多強(qiáng)大的功能,如依賴注入和面向切面編程,然而在使用 Spring 框架時,我們可能會遇到循環(huán)依賴的問題,需要的朋友可以參考下
    2023-09-09
  • pageHelper分頁失效問題及解決方案

    pageHelper分頁失效問題及解決方案

    文章介紹了Mybatis分頁插件pageHelper的一個bug,即在一對多查詢時會出現(xiàn)分頁錯誤,作者提供了解決方案,包括方案一、方案二和方案三,方案一通過在服務(wù)層進(jìn)行額外查詢來解決分頁問題,方案二利用mybatis的嵌套子查詢來解決,但可能產(chǎn)生'1+N'問題
    2025-01-01
  • 淺談Ribbon、Feign和OpenFeign的區(qū)別

    淺談Ribbon、Feign和OpenFeign的區(qū)別

    這篇文章主要介紹了淺談Ribbon、Feign和OpenFeign的區(qū)別。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 詳解java模板和回調(diào)機(jī)制

    詳解java模板和回調(diào)機(jī)制

    這篇文章主要為大家詳細(xì)介紹了java模板和回調(diào)機(jī)制,學(xué)習(xí)java模板,感興趣的朋友可以參考一下
    2016-03-03
  • IDEA2023.3.4開啟SpringBoot項目的熱部署(圖文)

    IDEA2023.3.4開啟SpringBoot項目的熱部署(圖文)

    本文使用的開發(fā)工具是idea,使用的是springboot框架開發(fā)的項目,配置熱部署,可以提高開發(fā)效率,文中通過圖文介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Java中byte輸出write到文件的實現(xiàn)方法講解

    Java中byte輸出write到文件的實現(xiàn)方法講解

    今天小編就為大家分享一篇關(guān)于Java中byte輸出write到文件的實現(xiàn)方法講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論