Можете ли вы вызвать java.util.concurrent.Semaphore.release () в другом потоке, в котором вы приобрели ()? - PullRequest
0 голосов
/ 14 мая 2018

У меня есть Java-модуль, который требует одновременного выполнения ряда задач через интерфейсы (чтобы обеспечить низкоуровневый контроль и обработку для платформ, реализующих модуль), но не слишком много одновременно, java.util.concurrent.Semaphore кажется идеальным для этого .

Единственная проблема, в которой я не уверен, это безопасность потоков вызовов release() и acquire(). Может ли один поток получить блокировки семафора, а позже - другой поток освободить его?

1 Ответ

0 голосов
/ 14 мая 2018

Это примечание на Javadoc о release()

Нет требования, чтобы поток, который выпускает разрешение, имел приобрел это разрешение, вызвав acqu (). Правильное использование Семафор устанавливается соглашением программирования в приложении.

Так что да. Вы можете сделать.

...