Java多线程的一个疑惑

为什么执行的结果中
创建线程 1
创建线程 2
创建线程 3
这三个总排在结果的最前面。是不是因为具有相同优先权的线程,他们都会首先执行各自的构造函数,然后再随机执行run()方法的内容?
帮忙解决一下,谢谢!
图片在附件里,不知道怎么弄上文本、、、、

2个回答

[b]运行线程,首先要获得一个线程对象。这是要靠构造出来的。

线程的执行是在调用start方法后,交由JVM来管理。[/b]

[code="java"]new Thread(new MyRunnable(i)).start();[/code]

[b]执行这一句时,执行构造方法,肯定是按顺序的。至于线程的run()的执行顺序,不确定。[/b]

不知道你要问的是什么问题.
具体run是怎么运行的, 这和系统的线程调度有关,

把 System.out.println("创建线程"+number); 移动到run方法的开头, 在while(true)之前
你要的结果估计就是这样子的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问