【问题标题】:Java volatile keyword - Do i need it? [duplicate]Java volatile 关键字 - 我需要它吗? [复制]
【发布时间】:2020-04-26 13:44:54
【问题描述】:

我有一个由“池”管理的多线程环境。 这个池保证一次只有一个线程可以访问共享资源。 一旦资源被当前正在使用它的线程释放,资源就会返回到池中并且可以被其他线程使用。 同步是通过在池中使用 ReentrantLock 来完成的。 我应该考虑将 volatile 用于共享资源的类属性吗?

谢谢。

【问题讨论】:

标签: java multithreading synchronization volatile


【解决方案1】:

ReentrantLockJavadoc 将其描述为:

一种可重入互斥锁,其基本行为和语义与使用同步方法和语句访问的隐式监视器锁相同,但具有扩展功能。

因此,unlock() 发生在后续成功的 acquire() 之前,就像监视器的发布发生在后续获取之前一样。

因此,如果无法通过任何其他方式访问共享资源,则不需要进一步同步。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2015-03-02
    • 2016-02-12
    • 2012-12-28
    • 2018-09-25
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多