Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

the end of thread

 
Steve Jiang
Ranch Hand
Posts: 127
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
How could I know all threads arecompleted and the process could go on the next step?

Thanks,

Steve
 
Jignesh Patel
Ranch Hand
Posts: 626
Mac
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Put all the threads in thread group.
In a while(true)loop continues check for threadgroup.activeCount()==0.
 
Peter Chase
Ranch Hand
Posts: 1970
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Jignesh Patel:
Put all the threads in thread group.
In a while(true)loop continues check for threadgroup.activeCount()==0.


The activeCount() method is documented as being approximate, so it probably isn't a good one to use here. Instead, keep track of all the threads that you've fired off, then join() them all. Note that you can join() them in any order; you don't have to join() them in the same order that they finish.
 
Stan James
(instanceof Sidekick)
Ranch Hand
Posts: 8791
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
JDK 5 has some new helpers to rendezvous multiple threads. Look at CountdownLatch for example. CyclicBarrier also looks interesting. Maybe I'll have to make up a requirement to let me try it.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic