BLOCKS AND STATEMENTS
The
synchronized
 Statement
14.17
14.17   The
synchronized
 Statement
A
synchronized
 statement acquires a mutual exclusion lock ( 17.13) on behalf
of the executing thread, executes a block, then releases the lock. While the execut 
ing thread owns the lock, no other thread may acquire the lock.
SynchronizedStatement:
synchronized (
Expression
 )
Block
The type of
Expression
 must be a reference type, or a compile time error occurs.
A
synchronized
 statement is executed by first evaluating the
Expression
.
If evaluation of the
Expression
 completes abruptly for some reason, then the
synchronized
 statement completes abruptly for the same reason.
Otherwise, if the value of the
Expression
 is
null
, a
NullPointerException
is thrown.
Otherwise, let the non 
null
 value of the
Expression
 be
V
. The executing
thread locks the lock associated with
V
. Then the
Block
is executed. If execution
of the
Block
 completes normally, then the lock is unlocked and the
synchronized
statement completes normally. If execution of the
Block
 completes abruptly for
any reason, then the lock is unlocked and the
synchronized
 statement then com 
pletes abruptly for the same reason.
Acquiring the lock associated with an object does not of itself prevent other
threads from accessing fields of the object or invoking unsynchronized methods
on the object. Other threads can also use
synchronized
 methods or the
synchronized
statement in a conventional manner to achieve mutual exclusion.
The locks acquired by
synchronized
 statements are the same as the locks
that are acquired implicitly by
synchronized
 methods; see  8.4.3.5. A single
thread may hold a lock more than once. The example:
class Test {
public static void main(String[] args) {
Test t = new Test();
synchronized(t) {
synchronized(t) {
System.out.println("made it!");
}
}
}
}
prints:
made it!
This example would deadlock if a single thread were not permitted to lock a lock
more than once.
289






footer




 

 

 

 

 Home | About Us | Network | Services | Support | FAQ | Control Panel | Order Online | Sitemap | Contact

java hosting

 

Our partners: PHP: Hypertext Preprocessor Best Web Hosting Java Web Hosting Inexpensive Web Hosting  Jsp Web Hosting

Cheapest Web Hosting Jsp Hosting Cheap Hosting

Visionwebhosting.net Business web hosting division of Web Design Plus. All rights reserved