有没有理由在此代码中使用volatile和synchronized?
public class Helper {
private volatile int n;
private final Object lock = new Object();
public Helper(int n) {
this.n = n;
}
public void setN(int value) {
synchronized (lock) {
n = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
类助手必须是线程安全的.我从"Java并发指南"一书中得到了这个例子,但是仍然不清楚:在这个例子中使用volatile和synchronized的原因是什么?