java - 最佳并发锁 : one WRITE and infinite number of READ

标签 java concurrency locks

Java 中是否有任何 Lock 允许我执行此操作?

  • 一次写操作
  • 无限次数的 READ 操作(即使 获得了 WRITE 锁)
  • 可选但很棒:锁定超时 - 一段时间后释放锁定以避免永远死锁

最佳答案

听起来好像没有什么情况下不能发生读取。你真的需要读锁吗?如果没有,那么您应该可以使用 Semaphore with 1 permit 保护写权限。如果您仍然想跟踪有多少读取发生而无法阻止任何读取,您始终可以使用 AtomicInteger 计算正在运行的读取数量。 .

关于java - 最佳并发锁 : one WRITE and infinite number of READ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16040265/

相关文章:

java - System.gc() 和通过仅实时堆转储执行的死对象回收之间的区别?

java - if else 语句错误

Objective-C:完全检索原子属性

concurrency - 延迟语句是否使进程处于阻塞状态?

java - java中的多个线程附加到队列

java - 在 Tomcat 的根目录下部署我的应用程序

java - Tomcat ServletContext 无法加载类

我可以在双重解锁 pthread_mutex_t 时强制崩溃吗?

C# 多线程

multithreading - Postgres 锁在不同的 goroutine 上表现不一致