关于主线程和子线程的问题

关于主线程和子线程的问题

package com.imooc.thread;
class MyThread extends Thread{
	public void run() {
		System.out.println(getName()+"该线程正在执行!");
	}
}
public class ThreadTest {

	public static void main(String[] args) {
		System.out.println("主线程1");
		MyThread mt=new MyThread();
		mt.start();//启动线程
		System.out.println("主线程2");

以上代码,既然mt子线程是主线程的一部分,主线程内应该顺序执行,为什么会出现主线程的代码和子线程交叉执行的情况?出现如下的执行结果:

主线程1

主线程2

Thread-0该线程正在执行!


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,Main方法比较特殊,运行主方法就会产生主线程哦。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-04-13 11:12:44

同学你好,因为在主线程执行过程中,生成了一个线程,所以叫子线程,但此时仍是两个线程。两个线程执行不同的任务,仍然会抢占CPU资源,谁抢到谁就先执行。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕沐8221787 #1
    不是说线程类要么是继承Thread,要么是实现Runnable接口,而上面的类ThreadTest既未继承Thread,也未实现Runnable接口,为什么说运行它的main方法就产生了主线程,这个怎么理解?
    2019-04-13 14:34:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师