? , , , , , . , . . , , , , . , .
. . . . , .
, . ( ) . , , , . . . , .
, .
-, . , .
-, , , . - , : . . , , , (profilers).
, .
, , . , . . , . Java synchronize (). , . Java Java . , . , , . , , . , , .
|
|
: .
obj1 ( ) :
synchronized(obj1) ;
:
synchronized(obj1){
...
m1(obj1);
...
obj1.m2();
...
}
. obj1 . , , .
, .
, . , ( - ), synchronized:
public class {
...
public synchronized (...){
...
}
}
.
:
public class C1{
public synchronized void m1(){
}
}
C1 obj1=new C1();
obj1.m1();
obj1.m1(), obj1 m1().
, , , .
, ( ), . ( ) .
|
|
, , . wait () notify ().
Java , Object :
void wait() , - ( ), . run() , () notify() notifyAll(). , llegalMonitorStateException.
void wait(long millis) , millis .
void wait(long millis, int nanos) , millis nanos .
void notify() , , . , . .
void notifyAll() - , , .
wait obj - while, wait:
synchronized(obj){
while(not )
obj.wait();
// , true
}
, while . : obj.wait() , , . wait obj, synchronized(obj). obj.notify() obj.notifyAll().