错题系列知识点总结03

以下代码,执行结果是什么?

public static void main(String[] args) throws InterruptedException {

Thread t = new Thread(new Runnable() {

public void run() {

try{

Thread.sleep(2000);

} catch(InterruptedException  e) {

throw new RuntimeException(e);

}

System.out.print("2");

}

}); 

t.start():

t.join();

System.out.print("1");

}

正确答案:21

解析:Thread的join()方法,线程合并,将交替执行的线程合并到一个线程顺序执行。在main函数中调用了t的join()方法,将线程t和主线程合并,等待t线程执行完毕(输出结果是2)再执行主线程(输出结果是1),所以输出结果就是21。


下列程序运行结果:

public static void main(String[] args) {

Thread t = new Thread() {

public void run() {

dianping();

}

};

t.run();

System.out.print("dazhong");

static void dianping() {

System.out.print("dianping");

}

}

正确答案:dianpingdazhong

解析:启动一个线程需要调用start()方法,t.run()只是单纯的普通方法调用,没有线程被启动,所以先执行dianping()方法,输出“dingping”,然后输出“dazhong”。


你可能感兴趣的:(错题系列知识点总结03)