常用的併發工具類
CountDownLatch
作用:是一組線程等待其他的線程完成工作以後在執行,加強版join
await用來等待,countDown負責計數器的減一
CyclicBarrier
讓一組線程達到某個屏障,被阻塞,一直到組內最後一個線程達到屏障時,屏障開放,所有被阻塞的線程會繼續運行CyclicBarrier(int parties)
CyclicBarrier(int parties, Runnable barrierAction),屏障開放,barrierAction定義的任務會執行
CountDownLatch和CyclicBarrier辨析
1、countdownlatch放行由第三者控制,CyclicBarrier放行由一組線程本身控制
2、countdownlatch放行條件》=線程數,CyclicBarrier放行條件=線程數
Semaphore
控制同時訪問某個特定資源的線程數量,用在流量控制
Exchange
兩個線程間的數據交換,
Callable、Future和FutureTask
isDone,結束,正常還是異常結束,或者自己取消,返回true;
isCancelled 任務完成前被取消,返回true;
cancel(boolean):
- 任務還沒開始,返回false
- 任務已經啓動,cancel(true),中斷正在運行的任務,中斷成功,返回true,cancel(false),不會去中斷已經運行的任務
- 任務已經結束,返回false
包含圖片和文字的文檔的處理:圖片(雲上),可以用future去取圖片,主線程繼續解析文字。