Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #29346
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Eric Sosman <esosman@comcast-dot-net.invalid> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: thread: catch the current thread in a share object |
| Date | Sat, 26 Jul 2014 14:19:45 -0400 |
| Organization | A noiseless patient Spider |
| Lines | 35 |
| Message-ID | <lr0rg8$sjj$1@dont-email.me> (permalink) |
| References | <61f2c6cc-5832-466c-ac70-325df061fb17@googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=ISO-8859-1; format=flowed |
| Content-Transfer-Encoding | 7bit |
| Injection-Date | Sat, 26 Jul 2014 18:19:52 +0000 (UTC) |
| Injection-Info | mx05.eternal-september.org; posting-host="bd4e1cba8d8592bec5d5ed9e4537fbfd"; logging-data="29299"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX185NJXtfwOVsTda77NAIhgW" |
| User-Agent | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 |
| In-Reply-To | <61f2c6cc-5832-466c-ac70-325df061fb17@googlegroups.com> |
| Cancel-Lock | sha1:Kz+PXL964z3G5WN/MiSINFUa51Y= |
| Xref | csiph.com comp.lang.java.programmer:29346 |
Show key headers only | View raw
On 7/26/2014 12:20 PM, Bert_emme wrote:
> I try to implement a share object between thread. In the share object there is a queue. I want that if a condition is realizated the thread that at the moment lock the object go in wait and I want to put it in the queue of the shared object. But I don't idea on how referencing to this thread.
> Example
>
> class ObjShare{
> Queue q;
>
> public synchronized mymethod(){
>
> if(condition){
> q.put(thecurrentthread)
> wait();
> }
See markspace's response. Also, this use of wait() is certainly
wrong, for at least two reasons:
1) It won't compile: wait() is an instance method of Object,
and you must apply it to some kind of Object reference.
Perhaps you meant this.wait().
2) wait() will re-aquire its Object's lock and return after
some other thread calls notify() or notifyAll() on that
Object, *or* at any random moment for no reason at all.
The fact that wait() returns says *nothing* about whether
the reasons for waiting no longer apply. That's why a
wait() call should (nearly always) be inside a synchronized
loop that re-tests the condition after awakening.
Again: See markspace's response, with particular attention to
the phrase "not good design." You are almost certainly doing
something you'll eventually regret.
--
esosman@comcast-dot-net.invalid
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
thread: catch the current thread in a share object Bert_emme <bertanimauro@gmail.com> - 2014-07-26 09:20 -0700
Re: thread: catch the current thread in a share object markspace <markspace@nospam.nospam> - 2014-07-26 10:08 -0700
Re: thread: catch the current thread in a share object Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-26 14:19 -0400
Re: thread: catch the current thread in a share object Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-27 08:06 -0400
Re: thread: catch the current thread in a share object Knute Johnson <nospam@rabbitbrush.frazmtn.com> - 2014-07-26 14:04 -0700
csiph-web