是否有任何理由在此代碼中一起使用volatile和同步?同步在一起的易失性
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;
}
}
}
類助手必須是線程安全的。我已經從「Java併發準則」一書中得到了這個例子,但是它仍然不清楚:在這個例子中使用volatile和synchronized的原因是什麼?
你說的確切的書是什麼?我強烈建議Java併發實踐書(http://jcip.net/)學習Java併發性。 – 2012-04-12 11:50:00
心中已經發現了這本書在這裏(第167頁) http://www.sei.cmu.edu/reports/10tr015.pdf 一切都在這本書中,除了這種情況下,僅使用 – 2012-04-12 11:50:56
相當的AtomicInteger清楚。 – khachik 2012-04-12 12:02:56