Tag: reentrant

通过ReentrantLock访问的字段是否需要volatile关键字?

我的问题是指使用ReentrantLock是否保证字段的可见性与synchronized关键字提供的方面相同。 例如,在下面的类A中 ,字段sharedData不需要声明为volatile,因为使用了synchronized关键字。 class A { private double sharedData; public synchronized void method() { double temp = sharedData; temp *= 2.5; sharedData = temp + 1; } } 但是,对于使用ReentrantLock的下一个示例,字段上的volatile关键字是否必要? class B { private final ReentrantLock lock = new ReentrantLock(); private volatile double sharedData; public void method() { lock.lock(); try { double temp = sharedData; temp […]