黑马程序员技术交流社区
标题:
一道入学测试题。(已提交,非作弊)
[打印本页]
作者:
周靖轩
时间:
2014-9-17 18:26
标题:
一道入学测试题。(已提交,非作弊)
5、 分析以下程序运行结果,说明原理。(没有分析结果不得分)
public class ThreadTest {
public static void main(String args[]) {
MyThread t = new MyThread();
t.run();
t.start();
System.out.println("A");
}
}
class MyThread extends Thread {
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
System.out.println("B");
}
}
复制代码
请问结果有可能是BBA吗?(t.start()创建新线程后,主线程突然中断,然后恢复的可能性有吗)
作者:
黑马-胡明
时间:
2014-9-17 18:36
自定义的线程,有可能会出现这样的,最好运行的次数多一些···
作者:
liubin
时间:
2014-9-17 18:38
不懂,还没学到那个阶段
作者:
李春丽
时间:
2014-9-17 18:46
public class Demo/*ThreadTest*/ {
public static void main(String args[]) {
MyThread t = new MyThread();
t.run();//3000后--> B;
t.start();//3000后执行,A先输出。然后输出B。程序结束。
System.out.println("A");
}
}
class MyThread extends Thread {
public void run()
{
try
{
Thread.sleep(3000);
}
catch (InterruptedException e)
{
}
System.out.println("B");
}
}
复制代码
3秒对计算机而言时间太漫长了,你说的那种情况不太可能发生。
作者:
周靖轩
时间:
2014-9-17 19:19
李春丽 发表于 2014-9-17 18:46
3秒对计算机而言时间太漫长了,你说的那种情况不太可能发生。
就是说还是有可能对吧。比如开启的程序过多,cpu切换不过来。
作者:
子阳zy
时间:
2014-9-17 19:23
上楼说的有道理
作者:
fantacyleo
时间:
2014-9-17 20:06
不可能。t.start()要睡3秒,main线程怎么也执行完了
作者:
Seven`
时间:
2014-9-17 20:48
子阳zy 发表于 2014-9-17 19:23
上楼说的有道理
小阳说的有道理
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2