Я создал распределенный класс замка, который я предназначен для использования, как это:Как создать метод, который принимает функцию обратного вызова в java?
myLock.lock();
doSomething();
myLock.unlock();
В моей текущей реализации блокировки() блокирует до замка приобретаются. Но я сталкиваюсь с некоторыми проблемами взаимоблокировки с этой реализацией. Поэтому я хотел бы переписать его как асинхронный, но я не знаю, как это сделать в java.
Что-то, как это будет работать, я думаю:
myLock.lock(myCallbackFunction);
private void myCallbackFunction(boolean result){
if(result){
doSomething();
mylock.Unlock();
}
}
Есть ли способ сделать это в Java?
EDIT (Подробнее): причины синхронной реализации взаимоблокировки сложны и не актуальны. Распределенная блокировка обеспечивает взаимное исключение ресурса через сеть с несколькими системами. На самом деле единственное, что я ищу, это написать метод, который принимает функцию обратного вызова.
«Поэтому я бы хотел переписать его как асинхронный» - блокировка по определению является синхронной. Что вы подразумеваете под «Я бы хотел переписать его как асинхронный»? –
Вы видели [это] (http://docs.oracle.com/javaee/6/tutorial/doc/gkkqg.html)? –
Вам необходимо запустить нить или использовать один из средств пула потоков. –