Реализовать вызов функции блокировки в Java

Каков рекомендуемый / лучший способ реализовать вызов функции блокировки в 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 намерение состоит не только в том, чтобы получить блокирующее поведение, но и в том, чтобы написать метод, который блокируется до тех пор, пока какой-то момент в будущем, когда можно будет вычислить требуемый результат.

9
задан mikera 12 October 2011 в 04:39
поделиться