Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #21379

Re: Threads, waiting for last one to finish

From Arved Sandstrom <asandstrom2@eastlink.ca>
Newsgroups comp.lang.java.programmer
Subject Re: Threads, waiting for last one to finish
References <oe21f8d1h1d357bljli7009crmaf3kmag9@4ax.com> <9TcIs.35775$tK1.985@newsfe07.iad> <afp4f896lcn7ltgi5djo47l81e080di5bv@4ax.com>
Message-ID <bUzIs.50596$On7.39770@newsfe16.iad> (permalink)
Organization Public Usenet Newsgroup Access
Date 2013-01-13 10:53 -0400

Show all headers | View raw


On 01/13/2013 03:56 AM, Roedy Green wrote:
> On Sat, 12 Jan 2013 08:42:45 -0400, Arved Sandstrom
> <asandstrom2@eastlink.ca> wrote, quoted or indirectly quoted someone
> who said :
>
>> Any reason why you couldn't use CyclicBarrier?
>
> There are a few things that puzzle.  What goes in the unshown
> waitUntilDone? just an await?  I suppose the mother thread too counts
> as one of the "parties".
>
> Why does CyclicBarrier have a Runnable? Would it not be simpler to
> have the mother thread invoke a Runnable after the await? or just
> execute the cleanup code on the same thread?
>
> With CyclicBarrier, you must know the precise number of threads ahead
> of time that will wait. In my case I have an upper bound.  Sometimes
> there is nothing to do for a given thread, and I don't even start it.
> To use CyclicBarrier I would need a pre-sweep to get the precise
> count.
>
> In my case, one of the threads, the one that probes amazon.cn takes
> quite a bit longer than the others.  The way it is now, all the
> threads but one shut down early and let the last thread have all the
> resources.  With CyclicBarrier they would all be hanging around to the
> last minute.
>
> Thank you for bringing this option up. I tend use to overuse the first
> tool I encounter out of learning curve fear.
>
It's this option and also its close cousin the CountdownLatch - useful 
synchronization constructs to be aware of.

I'll refer you to JCIP for a detailed exposition of the details between 
CountdownLatch and CyclicBarrier - the key difference is that the latch 
is waiting for an event (the latch count becoming 0 through invocations 
of countDown()) while the barrier waits on other threads (these threads 
arriving at the barrier when they call await()).

In either case, yes, you need to supply the number of threads involved. 
That's to be expected. I have difficulty seeing how you wouldn't be able 
to figure out how many threads you propose to start.

As for the Runnable for CyclicBarrier, you want to read the Javadoc 
carefully. The barrier is going to run that *after* all threads arrive, 
but *before* they are released - you're welcome to try and implement 
that yourself.

As for threads taking different times, and "hanging around", I don't see 
the problem. If each individual thread does resource cleanup - like 
connections - before calling await(), what is the issue with a thread 
doing basically nothing?

AHS

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Threads, waiting for last one to finish Roedy Green <see_website@mindprod.com.invalid> - 2013-01-11 13:56 -0800
  Re: Threads, waiting for last one to finish markspace <markspace@nospam.nospam> - 2013-01-11 14:05 -0800
    Re: Threads, waiting for last one to finish Roedy Green <see_website@mindprod.com.invalid> - 2013-01-11 14:14 -0800
      Re: Threads, waiting for last one to finish markspace <markspace@nospam.nospam> - 2013-01-11 15:11 -0800
        Re: Threads, waiting for last one to finish Arne Vajhøj <arne@vajhoej.dk> - 2013-01-11 20:02 -0500
        Re: Threads, waiting for last one to finish Roedy Green <see_website@mindprod.com.invalid> - 2013-01-12 01:51 -0800
        Re: Threads, waiting for last one to finish Roedy Green <see_website@mindprod.com.invalid> - 2013-01-12 02:20 -0800
          Re: Threads, waiting for last one to finish Arne Vajhøj <arne@vajhoej.dk> - 2013-01-12 09:08 -0500
        Re: Threads, waiting for last one to finish Roedy Green <see_website@mindprod.com.invalid> - 2013-01-12 10:36 -0800
          Re: Threads, waiting for last one to finish Arne Vajhøj <arne@vajhoej.dk> - 2013-01-12 16:17 -0500
    Re: Threads, waiting for last one to finish Kevin McMurtrie <mcmurtrie@pixelmemory.us> - 2013-01-12 23:39 -0800
      Re: Threads, waiting for last one to finish Arne Vajhøj <arne@vajhoej.dk> - 2013-01-13 22:35 -0500
        Re: Threads, waiting for last one to finish Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2013-01-14 09:12 -0800
        Re: Threads, waiting for last one to finish Kevin McMurtrie <mcmurtrie@pixelmemory.us> - 2013-01-14 22:29 -0800
          Re: Threads, waiting for last one to finish markspace <markspace@nospam.nospam> - 2013-01-15 08:19 -0800
            Re: Threads, waiting for last one to finish Kevin McMurtrie <mcmurtrie@pixelmemory.us> - 2013-01-16 01:28 -0800
              Re: Threads, waiting for last one to finish Robert Klemme <shortcutter@googlemail.com> - 2013-01-20 15:21 +0100
            Re: Threads, waiting for last one to finish Kevin McMurtrie <mcmurtrie@pixelmemory.us> - 2013-01-18 21:58 -0800
      Re: Threads, waiting for last one to finish Robert Klemme <shortcutter@googlemail.com> - 2013-01-26 17:20 +0100
  Re: Threads, waiting for last one to finish Knute Johnson <nospam@knutejohnson.com> - 2013-01-11 21:19 -0800
    Re: Threads, waiting for last one to finish Robert Klemme <shortcutter@googlemail.com> - 2013-01-13 19:38 +0100
      Re: Threads, waiting for last one to finish Knute Johnson <nospam@knutejohnson.com> - 2013-01-14 08:58 -0800
      Re: Threads, waiting for last one to finish Arved Sandstrom <asandstrom2@eastlink.ca> - 2013-01-15 05:05 -0400
  Re: Threads, waiting for last one to finish Arved Sandstrom <asandstrom2@eastlink.ca> - 2013-01-12 08:42 -0400
    Re: Threads, waiting for last one to finish Roedy Green <see_website@mindprod.com.invalid> - 2013-01-12 23:56 -0800
      Re: Threads, waiting for last one to finish Arved Sandstrom <asandstrom2@eastlink.ca> - 2013-01-13 10:53 -0400
        Re: Threads, waiting for last one to finish Roedy Green <see_website@mindprod.com.invalid> - 2013-01-13 19:18 -0800
          Re: Threads, waiting for last one to finish Arne Vajhøj <arne@vajhoej.dk> - 2013-01-13 22:26 -0500
            Re: Threads, waiting for last one to finish Arved Sandstrom <asandstrom2@eastlink.ca> - 2013-01-14 05:51 -0400
              Re: Threads, waiting for last one to finish Arne Vajhøj <arne@vajhoej.dk> - 2013-01-14 19:02 -0500
        Re: Threads, waiting for last one to finish Roedy Green <see_website@mindprod.com.invalid> - 2013-01-13 19:43 -0800
  Re: Threads, waiting for last one to finish Sebastian <news@seyweiler.dyndns.org> - 2013-01-13 15:19 +0100

csiph-web