java多线程编程—经典面试题解析
今天偶然刷到一道面试题,一道看代码在脑子里执行的题目,(java大神就不要来嘲讽了)~_~ 唉反正博客也就自己看。。。
题目涉及到的重点:
- java多线程
- synchronized关键字
- 对象锁
依旧是话不多说,show U the code:
public class Sync implements Runnable {
int i=100;
synchronized void m1() throws InterruptedException{
i=1000;
Thread.sleep(500);//6
System.out.println("b="+i);
}
synchronized void m2() throws InterruptedException{
Thread.sleep(250);//5
i=2000;
}
public static void main(String[] args)throws Exception {
Sync sync=new Sync();
Thread t=new Thread(sync);//1
t.start();//2
sync.m2();//3
System.out.println("main thread b="+sync.i);//4
}
@Override
public void run() {
try {
m1();
}catch (Exception e){
e.printStackTrace();
}
}
}
先出个题,给大家一点点的思考时间。
为啥我双十一还来写博客?汪汪汪!为啥我双十一还不购物? 真的不是因为穷!!!!!