public class TT implements Runnable {
int b = 100;
public synchronized void m1() throws Exception {
b = 1000;
Thread.sleep(2500);
System.out.println("b = " + b);
}
public synchronized void m2() throws Exception {
Thread.sleep(5000);
b =2000;
}
public void run() {
try {
m1();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception{
TT tt = new TT();
Thread t = new Thread(tt);
t.start();
tt.m2();
System.out.println(tt.b);
}
}
最后打印的结果是
b =1000
1000
请问这个程序的执行顺序是怎么样的
m1() m2()这两个方法都被synchronized修饰是他们是怎么执行的