У меня есть вопрос о замках и синхронизации.Удерживание замков на двух объектах
У меня есть метод, который блокирует объект 1, и другой метод, который опротестовать замки 2:
private void a(){
synchronized(obj1){
System.out.println("Object 1 being used");
}
System.out.println("Object 1 finished");
}
private void b(){
synchronized(obj2){
System.out.println("Object 2 being used");
}
System.out.println("Object 2 finished");
}
Также у меня есть третий способ:
private void c(){
for(int i=0;i<=0;i++){
a();
b();
Thread.sleep(2000);
}
}
Я хочу, чтобы удерживать блокировку на обоих объектов, 1 и 2, пока выполняется метод c
, после того как c
будет выполнен, обе блокировки могут быть освобождены. Как я могу это достичь? Я попытался положить их в цикл for
, но методы a
и b
просто начинают и заканчивают.
Спасибо за ответ :) – Felipe