線程的并發(fā)工具類

Fork-Join

什么是分而治之?

規(guī)模為N的問(wèn)題,N<閾值,直接解決,N>閾值,將N分解為K個(gè)小規(guī)模子問(wèn)題,子問(wèn)題互相對(duì)立,與原問(wèn)題形式相同,將子問(wèn)題的解合并得到原問(wèn)題的解

動(dòng)態(tài)規(guī)范

工作密取

workStealing


Fork/Join使用的標(biāo)準(zhǔn)范式


常用的并發(fā)工具類

CountDownLatch

作用:是一組線程等待其他的線程完成工作以后在執(zhí)行,加強(qiáng)版join

await用來(lái)等待,countDown負(fù)責(zé)計(jì)數(shù)器的減一

CyclicBarrier

讓一組線程達(dá)到某個(gè)屏障,被阻塞,一直到組內(nèi)最后一個(gè)線程達(dá)到屏障時(shí),屏障開(kāi)放,所有被阻塞的線程會(huì)繼續(xù)運(yùn)行CyclicBarrier(intparties)

CyclicBarrier(int parties, Runnable barrierAction),屏障開(kāi)放,barrierAction定義的任務(wù)會(huì)執(zhí)行

CountDownLatch和CyclicBarrier辨析

1、countdownlatch放行由第三者控制,CyclicBarrier放行由一組線程本身控制

2

、countdownlatch放行條件》=線程數(shù),CyclicBarrier放行條件=線程數(shù)

?

Semaphore

控制同時(shí)訪問(wèn)某個(gè)特定資源的線程數(shù)量,用在流量控制

?

Exchange

兩個(gè)線程間的數(shù)據(jù)交換,

?

Callable、Future和FutureTask

isDone,結(jié)束,正常還是異常結(jié)束,或者自己取消,返回true;

isCancelled 任務(wù)完成前被取消,返回true;

cancel(boolean):

[if !supportLists]1、? [endif]任務(wù)還沒(méi)開(kāi)始,返回false

[if !supportLists]2、? [endif]任務(wù)已經(jīng)啟動(dòng),cancel(true),中斷正在運(yùn)行的任務(wù),中斷成功,返回true,cancel(false),不會(huì)去中斷已經(jīng)運(yùn)行的任務(wù)

[if !supportLists]3、? [endif]任務(wù)已經(jīng)結(jié)束,返回false


包含圖片和文字的文檔的處理:圖片(云上),可以用future去取圖片,主線程繼續(xù)解析文字。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容