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


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

Re: Java thread

Path csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!nx01.iad01.newshosting.com!newshosting.com!69.16.185.16.MISMATCH!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
From Lew <lewbloch@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: Java thread
Date Sun, 11 Sep 2011 09:37:14 -0700 (PDT)
Organization http://groups.google.com
Lines 41
Message-ID <eaec41ae-84c0-4e65-a0c3-445562e4b01f@glegroupsg2000goo.googlegroups.com> (permalink)
References <128ea2e0-7a2e-4c86-9507-8e15a0b892b9@p25g2000pri.googlegroups.com> <0d62ad20-0081-4bf2-9c5d-ee4600423150@f24g2000prb.googlegroups.com>
Reply-To comp.lang.java.programmer@googlegroups.com
NNTP-Posting-Host 24.6.43.78
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1
Content-Transfer-Encoding quoted-printable
X-Trace posting.google.com 1315759125 29820 127.0.0.1 (11 Sep 2011 16:38:45 GMT)
X-Complaints-To groups-abuse@google.com
NNTP-Posting-Date Sun, 11 Sep 2011 16:38:45 +0000 (UTC)
In-Reply-To <0d62ad20-0081-4bf2-9c5d-ee4600423150@f24g2000prb.googlegroups.com>
Complaints-To groups-abuse@google.com
Injection-Info glegroupsg2000goo.googlegroups.com; posting-host=24.6.43.78; posting-account=CP-lKQoAAAAGtB5diOuGlDQk0jIwmH0T
User-Agent G2/1.0
X-Google-Web-Client true
Xref x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:7808

Show key headers only | View raw


Jack wrote:
>> For Java thread, how to ensure that wait() does not miss notify()?
>> Otherwise the thread will hang and can not shut down.
> 
> For example in the following code:
> 
> while(true)
> {
>     doSomeThing(); //Do some operation once a day
>     wait(24 * 3600); //sleep for one day. LINE1
> }
> 
> The thread blocks at LINE1 for one day. When the program shuts down,
> if the notify() is missing, then the program will hang.

That is not accurate. You failed to synchronize (using the 'synchronized' keyword) on a monitor, so the call to 'wait()' is not legitimate.  

Also, when the program shuts down, it cannot hang, because it has shut down.

Read the documentation:
<http://download.oracle.com/javase/7/docs/api/java/lang/Object.html#wait(long)>
_et seq_
The Javadocs also recommend reading Josh Bloch's _Effective Java_  Use the latest edition; the Javadocs' recommendation is old.  To that I'll add _Java Concurrency in Practice_ by Brian Goetz, _et al._

Unfortunately I don't find an update to Doug Lea's _Concurrent Programming in Java_ that takes into account the changes in the Java language since the 2nd edition was published twelve years ago.  Any book on concurrent Java programming prior to Java 5 will not help.

<http://java.sun.com/docs/books/effective/>
<http://jcip.net/>

Read the documentation.  

-- 
Lew

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


Thread

Java thread Jack <junw2000@gmail.com> - 2011-09-10 21:03 -0700
  Re: Java thread markspace <-@.> - 2011-09-10 21:34 -0700
  Re: Java thread Patricia Shanahan <pats@acm.org> - 2011-09-10 22:42 -0700
  Re: Java thread Jack <junw2000@gmail.com> - 2011-09-10 22:48 -0700
    Re: Java thread Owen Jacobson <angrybaldguy@gmail.com> - 2011-09-11 03:07 -0400
    Re: Java thread Lew <lewbloch@gmail.com> - 2011-09-11 09:37 -0700
    Re: Java thread Arne Vajhøj <arne@vajhoej.dk> - 2011-09-11 16:56 -0400
  Re: Java thread Arne Vajhøj <arne@vajhoej.dk> - 2011-09-11 09:34 -0400
  Re: Java thread Roedy Green <see_website@mindprod.com.invalid> - 2011-09-11 08:32 -0700

csiph-web