Why doesn&#39;t the main thread just call arrive() at the end?  I guess only for clarity - to show that only x worker threads  (minus 1 starter thread) are required for the processing.<br><br><br><div class="gmail_quote">On Sun, Jul 31, 2011 at 3:47 PM, David Holmes <span dir="ltr">&lt;<a href="mailto:davidcholmes@aapt.net.au">davidcholmes@aapt.net.au</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><u></u>



<div>
<div><span><font color="#0000ff" face="Arial" size="2">Ashwin,</font></span></div>
<div><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div><span><font color="#0000ff" face="Arial" size="2">&gt; 
<font color="#000000" face="Times New Roman" size="3">I learned later that the 
arriveAndDeregister() method makes sense only when you create a hierarchy of 
phasers</font></font></span></div>
<div><span></span> </div>
<div><span><font color="#0000ff" face="Arial" size="2">Not 
so. arriveAndDeregister is typically used by the main thread when the phaser 
acts as both a cyclic barrier and a starting latch. You create the phaser for 
N+1 threads and have all workers wait on the phaser in a loop. The main thread 
is needed to release the phaser the first time so that all workers have been 
created but thereafter is not needed so it can arrive and 
deregister.</font></span></div>
<div><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div><span><font color="#0000ff" face="Arial" size="2">David 
Holmes</font></span><br></div></div></blockquote></div><br><br>