關於Java同步,我嘗試了一個例子(來自TLF-SOFT-VTC.java.6CFE),但事實證明是錯誤的,爲什麼它不同步?代碼:爲什麼不同步?
public class InterferenceFix extends Thread {
String name;
static boolean isZero = true;
static int counter = 0;
public static void main(String arg[]) {
InterferenceFix one = new InterferenceFix("one");
InterferenceFix two = new InterferenceFix("two");
one.start();
two.start();
}
InterferenceFix(String nameString) {
name = nameString;
}
public void run() {
for (int i = 0; i < 100000; i++) {
update();
}
System.out.println(name + ": " + counter);
}
synchronized void update() {
if (isZero) {
isZero = false;
counter++;
} else {
isZero = true;
counter--;
}
}
}
一定要用'@ Override'註釋標記'run()'。 –
另外:每天使用牙線,並在穿過街道前查看兩條路線。 –