《JAVA併發程式設計核心方法與框架》讀書筆記之Phaser

《JAVA併發程式設計核心方法與框架》讀書筆記之Phaser

主要方法

arriveAndAwaitAdvance()

執執此方法呼叫,到達某barrier

並且,等待一段時間後條件滿足:parties數量 == 達到、計數、此方法呼叫的數量,則:繼續向下一個barrier前進

否則就阻塞

arriveAndDeregister()

退出parties,使得 parties——

getPhase()

已arrived第幾個barrier

onAdvance()

callback: 當透過barrier後,被觸發呼叫;

return false == 繼續工作;

return true == 不等待,parties——(取消此barrier的意思)

getRegisteredParties()

獲取parties數量

register()

parties++

bulkRegister()

bulk /blk/ 主體;大部分體積;大(量)

批次

增加parties

getArrivedParties() & getUnarrivedParties()

獲取“已使用”和“未使用”的parties數量

arrive()

parties++,且,不在barrier處等待,直接next

awaitAdvance(int phase)

當:phase引數值 == getPhase()值時,await等待; 否則,next

awaitAdvanceUninterruptibly(int phase)

可中斷的

forceTermination()

強制Phaser的barrier功能失效

isTerminated()

判斷Phaser是否已失效