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


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

Re: thread: catch the current thread in a share object

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 2014-07-26 14:19 -0400
Organization A noiseless patient Spider
Message-ID <lr0rg8$sjj$1@dont-email.me> (permalink)
References <61f2c6cc-5832-466c-ac70-325df061fb17@googlegroups.com>

Show all headers | 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

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