This week's book giveaway is in the Big Data forum.
We're giving away four copies of Elasticsearch in Action and have Radu Gheorghe & Matthew Lee Hinman on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Why does this thread block Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Elasticsearch in Action this week in the Big Data forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Why does this thread block" Watch "Why does this thread block" New topic

Why does this thread block

Deepak Jain
Ranch Hand

Joined: Aug 05, 2006
Posts: 637

The above method instantiates a annoymous implemntor of Runnable interface and defines a instance iniatlizer that acquires a lock on the annonymous implementer object and invokes wait() and then blocks forever? why does this happen?
And how to make the thread run again and complete the execution to display "I am in run()", without commenting wait()?

Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42954
and then blocks forever? why does this happen?

It blocks because the wait() call tells it to block. To wake it up another process needs to call notify() on it. But because there is no other code that could do this, it stays blocked and waiting.

I'm assuming you meant ".run()" instead of ".start()", by the way.
I agree. Here's the link:
subject: Why does this thread block