如果您的资源一次只能访问一次,您可以使用大小为 1 的信号量,还是可以只使用一个 ReentrantLock 实例?
使一个或另一个成为更好的决定的细微差别是什么?
最佳答案
有区别:
- 信号量可以由一个线程获取并由另一个线程释放。这样,一个线程可以向另一个线程发送信号。计数为 1 的信号量也可用于互斥。另一方面,锁仅用于互斥。
- 信号量不可重入。这意味着当许可耗尽时,线程无法获取信号量,即使它已被同一线程获取。锁可以重入。
关于java - 大小为 1 的信号量是最佳选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15679074/