Gibt es einen Grund, volatile und synchronisierte in diesem Code zusammen zu verwenden?Flüchtig mit synchronisiert zusammen
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;
}
}
}
Klassenhelfer muss fadensicher sein. Ich habe dieses Beispiel aus dem Buch "Java Concurrency Guidelines", aber es ist immer noch nicht klar: Was ist der Grund für die Verwendung von volatilen und synchronisierten in diesem Beispiel zusammen?
Worüber genau sprechen Sie? Ich würde dem Buch Java Concurrency in Practice (http://jcip.net/) dringend raten, Java-Parallelität zu lernen. –
Ich habe dieses Buch hier gefunden (Seite 167) http://www.sei.cmu.edu/reports/10tr015.pdf Alles in diesem Buch ist ziemlich klar, außer in diesem Fall nur –
Verwenden Sie AtomicInteger. – khachik