【发布时间】:2020-04-26 13:44:54
【问题描述】:
我有一个由“池”管理的多线程环境。 这个池保证一次只有一个线程可以访问共享资源。 一旦资源被当前正在使用它的线程释放,资源就会返回到池中并且可以被其他线程使用。 同步是通过在池中使用 ReentrantLock 来完成的。 我应该考虑将 volatile 用于共享资源的类属性吗?
谢谢。
【问题讨论】:
-
ReentrantLock 的解锁发生在获取之前,因此您不需要进一步同步。
-
这可能很有用When exactly do you use the volatile keyword in Java? 并且实际上在上面提到了@AndyTurner 在答案中提到的内容。
-
我发现了一个更具体的重复问题,并用它来关闭这个问题。请注意我的search strategy used
标签: java multithreading synchronization volatile