史上最难的一道Java面试题

来源:互联网 发布:隔墙听音器专卖店淘宝 编辑:程序博客网 时间:2024/05/22 12:47

求下面这段程序的运行结果

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);}@Overridepublic void run() {    try {        m1();    } catch (InterruptedException e) {        e.printStackTrace();    }}

}

答案是:
main thread b=1000
b=1000
或者:
main thread b=2000
b=1000

你猜对了吗?

原创粉丝点击