Когда один поток блокируется в синхронизированном методе объекта, имеет ли другой поток доступ к этому объекту через тот же или другой синхронизированный метод?
Действительно, будет ли заблокирован мой поток, если я использую wait() внутри такого синхронизированного метода?
class Product{
Product(){
q = 0;
}
synchronized void add(){
try{
notify();
System.out.println("1");
wait();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.println("Zavrseno "+Thread.currentThread().getName());
notifyAll();
}
synchronized void reduce(){
try{
notify();
System.out.println("2");
wait();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
notifyAll();
System.out.println("Finished "+Thread.currentThread().getName());
}
int q;
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... her-thread