Java 中是否有任何 Lock 允许我执行此操作?
- 一次写操作
- 无限次数的 READ 操作(即使 获得了 WRITE 锁)
- 可选但很棒:锁定超时 - 一段时间后释放锁定以避免永远死锁
最佳答案
听起来好像没有什么情况下不能发生读取。你真的需要读锁吗?如果没有,那么您应该可以使用 Semaphore with 1 permit 保护写权限。如果您仍然想跟踪有多少读取发生而无法阻止任何读取,您始终可以使用 AtomicInteger 计算正在运行的读取数量。 .
关于java - 最佳并发锁 : one WRITE and infinite number of READ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16040265/