KDM : - . , , :
class Example
{
private final Object lock = new Object();
private void run() throws InterruptedException
{
if (Math.random() > 0.5)
{
synchronized (lock)
{
doWait();
}
}
else
{
doWait();
}
}
private void doWait() throws InterruptedException
{
lock.wait();
}
}
, synchronized .