你可以在你获得()的另一个线程上调用java.util.concurrent.Semaphore.release()吗?

Sha*_*han 2 java concurrency multithreading java.util.concurrent

我有一个java模块,它需要通过接口同时执行一组任务(为实现模块的框架提供低级控制和处理),但同时不是太多,java.util.concurrent.Semaphore似乎是完美的.

我不确定的一个问题是线程安全release()acquire()调用.一个线程可以获取信号量锁,后来另一个线程释放它吗?

Mạn*_*yễn 13

这是关于Javadoc的注释release()

不要求释放许可的线程必须通过调用acquire()获得该许可.通过应用程序中的编程约定来建立信号量的正确使用.

是的 你可以做.