求下面这段程序的运行结果
public class TestSync2 implements Runnable{ int b=100; synchronized void m1() throws InterruptedException { b=1000; Thread.sleep(500); System.out.println(“b=”+b); } synchronized void m2() throws InterruptedException { Thread.sleep(250); b=2000; } public static void main(String[] args) throws InterruptedException { TestSync2 tt=new TestSync2(); Thread t=new Thread(tt); t.start();
tt.m2();
System.out.println("main thread b="+tt.b);
}
@Override
public void run() {
try {
m1();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
答案是: main thread b=1000 b=1000 或者: main thread b=2000 b=1000
你猜对了吗?