This week's book giveaway is in the Clojure forum.
We're giving away four copies of Clojure in Action and have Amit Rathore and Francis Avila on-line!
See this thread for details.
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Synchronized block scope

 
ragi singh
Ranch Hand
Posts: 198
Oracle Suse
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi all ,

can anyone tell me the scope of the synchronized block ie whether the synchronized block expands across methods or only inside the method block .
 
Ankit Garg
Sheriff
Posts: 9497
22
Android Google Web Toolkit Hibernate IntelliJ IDE Java Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you synchronize a method, then only that method is synchronized. Any other non-synchronized method that this method calls can be called by any other thread on the same object at the same time...
 
Sunny Bhandari
Ranch Hand
Posts: 448
Eclipse IDE Firefox Browser Tomcat Server
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ankit Garg wrote:If you synchronize a method, then only that method is synchronized. Any other non-synchronized method that this method calls can be called by any other thread on the same object at the same time...


Ankit, Very good use of word.
ragi, please note that "any other thread on the same object" means the following:



Here t1 and t2 are two different threads on the same object dc.
 
Javin Paul
Ranch Hand
Posts: 295
Eclipse IDE Firefox Browser Linux
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Hi ragi,

if you use synchronized block then scope of synchronization remains on block boundary e.g.

synchronized (System.in){
//some code

}

though points to remember

1) Java supports re entrant entry , so if a thread calls another synchronized method (which synchronize on same object whose lock calling thread holds) it will go there without waiting because it holds the lock.
2) Thread acquire lock before entering synchronized block/method and releases lock when they leave block (either normal or due to exception).

Thanks
Javin
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic