主线程先执行还是自己创建的线程先执行,或者优先级是一样的?

主线程先执行还是自己创建的线程先执行,或者优先级是一样的?

public class Dog implements Runnable {

	@Override
	public void run() {
		for(int i=1;i<=3;i++) {
			System.out.println(Thread.currentThread().getName()+"A,Cat"+i);
		}

	}

}

public class Cat implements Runnable {


@Override

public void run() {

for (int i = 1; i <= 3; i++) {

System.out.println(Thread.currentThread().getName() + "A,Dog" + i);

}


}


}

public class Test {

public static void main(String[] arg) {

Runnable cat = new Cat();

Runnable dog = new Dog();

for (int i = 1; i <= 3; i++) {

System.out.println(Thread.currentThread().getName() + "  main thread" + i);

}

Thread thc = new Thread(cat);

Thread thd = new Thread(dog);

thc.start();

thd.start();

char[] c = new char[26];

for (int i = 0; i < 26; i++) {

c[i] = (char) (i + 97);

System.out.println(c[i]);

}

}

}


正在回答 回答被采纳积分+1

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

1回答
好帮手慕查理 2018-10-09 11:17:47

 您好,主线程会先执行。每个线程的优先级都可以通过setPriority方法来设置的,譬如你将thd的优先级设置为10,那么thd的优先级会高于thc,setPriority中的参数越大优先级越高,最小优先级为1,最高优先级为10。祝学习愉快~ 

  • 提问者 Roce_ #1
    我上面那段代码是先输出三次main thread,然后thc,thd两个线程启动了它们和输出a到z是交替执行的啊这和我的电脑cpu是双核双线程有关吗?
    2018-10-09 11:56:52
  • chrismorgen 回复 提问者 Roce_ #2
    thc和thd是两个子线程,它们的执行顺序是无序的,这和cpu的调度有关系,祝学习愉快~
    2018-10-09 13:45:05
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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