Каков рекомендуемый / лучший способ реализовать вызов функции блокировки в Java, который позже может быть разблокирован вызовом из другого потока?
В основном, Я хочу иметь два метода для объекта, где первый вызов блокирует любой вызывающий поток, пока второй метод не будет запущен другим потоком:
public class Blocker {
/* Any thread that calls this function will get blocked */
public static SomeResultObject blockingCall() {
// ...
}
/* when this function is called all blocked threads will continue */
public void unblockAll() {
// ...
}
}
BTW намерение состоит не только в том, чтобы получить блокирующее поведение, но и в том, чтобы написать метод, который блокируется до тех пор, пока какой-то момент в будущем, когда можно будет вычислить требуемый результат.