【JAVA线程】请教小程序,非常感谢!!问题:为啥这里含有run的语句没有顺序执行?

cristina1864 2015-12-26 08:12:38
public class Exa_01 {
public static void main(String[] args){
System.out.println("hello there");
Mushroom a=new Mushroom();
a.start();
System.out.println("end");
}
}
----------------------------------------------
public class Mushroom extends Thread{
private int num;

public void run(){
System.out.println("are you happy?");

}
}
===================================
结果:
hello there
end
are you happy?

这是为什么呢???为什么end与are you happy 输出的顺序相反了呢??
不应该顺序执行吗???
谢谢!!!
...全文
197 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小白晒太阳 2015-12-27
  • 打赏
  • 举报
回复
   System.out.println("hello there");  //主线程
   Mushroom a=new Mushroom();  //另一个线程
   a.start();
   System.out.println("end");
这里实际上有2个线程,线程的执行顺序根据cpu调度来,所以是没有顺序的。
杨子居 2015-12-27
  • 打赏
  • 举报
回复
这里线程的执行绪是随机的。
qq_31117967 2015-12-27
  • 打赏
  • 举报
回复
线程同时执行,,,,,,,,,,,
揪克 2015-12-26
  • 打赏
  • 举报
回复
看我最新的提问贴你就知道答案了,和我一样的
念七 2015-12-26
  • 打赏
  • 举报
回复
它俩的顺序应该是不确定的,多线程彼此是平等的,cpu选择调度,线程start之后只是进入就绪队列,等待cpu调用 你这个可能是程序太短,所以直接就结束了才执行你的新线程。

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧