package thread;
public class TT2 implements Runnable{
int b = 100;
public synchronized void m1() throws Exception{ b = 1000; Thread.sleep(5000); System.out.println("b = " + b); } public synchronized void m2() throws Exception{ Thread.sleep(7000); b = 2000; } public void run() { try { m1(); }catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args)throws Exception{ TT2 tt = new TT2(); Thread t = new Thread(tt); t.start(); tt.m2(); System.out.println(tt.b); }
}
打印的结果是: 1000 b=1000 我不明白这个结果是怎么来的,为什么不是先执行m1的锁呢
FFIVE
相关分类