所以,我想了解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