所以,我想了解java線程和同步。下面的一段代碼沒有得到正確的同步,有人可以解釋爲什麼嗎?在java中不正確的同步
package threadPractice;
public class T2 extends Thread {
public static int count=0;
public T2() { }
private synchronized void update() {
int v = count;
try {
sleep(10);
} catch (Exception e) { }
v++;
count = v;
}
public void run() {
for (int i = 0; i < 1000; i++) {
update();
}
}
}
package threadPractice;
public class Main {
public static void main(String args[]) throws Exception {
T2 t1_1 = new T2();
T2 t1_2 = new T2();
t1_1.start(); t1_2.start();
t1_1.join(); t1_2.join();
System.out.println("T2.start, "+T2.count);
}
}
我的預期成果是2000年我的實際產量好0年至2000年和
你是什麼意思**以下代碼段不能正確同步**? –
你可以把你的實際和預期的產出。 – hagrawal