juc包下的關於併發四大工具類

2021-09-23 18:35:51 字數 2713 閱讀 7905

##countdownlatch—閉鎖

使用countdownlatch可以實現類似多執行緒下計數器的功能。

構造器:

1.引數count為計數器

2.呼叫await()方法時,執行緒被掛起,它會等待直到count值為0才繼續執行

​ 過載:public boolean await(long await ,timeunit unit)throw interruptedexception{}//等到一定時間count還沒有減到0,繼續執行。

3.public void countdown(){}

countdownlatch在計數器值減為0之後無法還原——這就是他為什麼值會減為0.

class

sync

implements

runnable

@override

public

void

run(

)catch

(interruptedexception e)}}

public

class

test

//呼叫await()方法阻塞當前執行緒,當所有子執行緒執行完畢,主線程恢復執行

latch.

await()

; system.out.

println

("比賽結束");

}}

##cyclicbarrier—迴圈柵欄

通過它,可以讓一組執行緒等待至某個狀態之後再全部執行。叫做回環是因為當所有執行緒都被釋放後,cyclibarrier提供兩個構造器:

public

cyclicbarrier

(int parties, runnable barrieraction)

//多的引數是隨機挑選乙個執行緒恢復執行後所有執行緒恢復執行

public

cyclicbarrier

(int parties)

//所有執行緒到達終點的個數

應用場景:子執行緒在望主記憶體寫資料

引數parties指讓多少個執行緒或者任務等待至barrier狀態;引數barrieraction為當這些執行緒都達到barrier狀態時會恢復執行,恢復執行之前隨機挑選乙個執行任務。

//子執行緒呼叫await方法後將計數器值-1,並進入阻塞狀態;直到計數器值減為0時,所有呼叫await()方法在同時恢復執行,

public

intawait()

throws interruptedexception, brokenbarrierexception

public

intawait

(long timeout, timeunit unit)

throws interruptedexception,

brokenbarrierexception,

timeoutexception

第乙個版本比較常用:直至所有執行緒到達barrier狀態再同時執行後續任務;

第二個版本是讓這些執行緒等待至一定時間,如果還有執行緒沒有達到barrier狀態就直接讓達到barrier的執行緒執行後續任務。

每個cyclicbarrier的計數器可以重複使用

class

sycn

implements

runnable

@override

public

void

run(

)catch

(interruptedexception e)

catch

(brokenbarrierexception e)}}

//迴圈柵欄

public

class

test

}}

應用場景:五個裝置,8臺生產個工人,工人輪流使用裝置。

class

factory

implements

runnable

@override

public

void

run(

)catch

(interruptedexception e)}}

public

class

main

}}

執行緒資料交換器——

1.構造方法

2.exchanger(),

應用場景:一般用於兩個執行緒交換資料;

首先呼叫exchanger方法的執行緒會阻塞直到有新的執行緒進入緩衝區,

交換彼此執行緒資料再同時恢復執行,

public

class

test

catch

(interruptedexception e)}}

,"大豬豬");

thread1.

start()

; thread thread2=

newthread

(new

runnable()

catch

(interruptedexception e)}}

,"大實時");

thread2.

start()

;}}

Shell四大工具

cut cut的工作就是 剪 具體的說就是在檔案中負責剪下資料用的。cut 命令從檔案的每一行剪下位元組 字元和字段並將這些位元組 字元和字段輸出。1 基本用法 cut 選項引數 filename 說明 預設分隔符是製表符 2 選項引數說明 f 列號,提取第幾列 d 分隔符,按照指定分隔符分割列 c...

四 執行緒的併發工具類

countdownlatch是什麼?countdownlatch,英文翻譯為倒計時鎖存器,是乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。閉鎖可以延遲線程的進度直到其到達終止狀態,閉鎖可以用來確保某些活動直到其他活動都完成才繼續執行 countdownla...

Kettle的四大不同環境工具

不多說,直接上乾貨!kettle裡有不同工具,分別用於etl的不同階段。初學者,建議送spoon開始。高手,是四大工具都會用。sqoop 圖形介面工具,快速設計和維護複雜的etl工作流。整合開發環境,提供了乙個圖形使用者介面,用於建立 編輯作業和轉換。sqoon也額可以用於執行 除錯作業或轉換,它也...