//主题:执行start()的顺序不是执行run()的顺序
//执行start()方法的顺序不代表线程启动的顺序,即不代表run()方法执行的顺序,执行run()方法的顺序是随机的
//创建测试类 MyThread2
public class MyThread2 extends Thread{
private int i;
public MyThread2(int i ){ //构造函数
super();
this.i=i;
}
@Override
public void run() {
System.out.println(i);
}
}
// 下面测试类运行结果 1,2,3,8,7,6,5,11,13,4,9,10,15,14,12
//说明执行start()方法的顺序不代表线程启动的顺序,方法run()是被随机调用的,也从另外一个角度说明线程是随机执行的
//运行测试类
class Test{
public static void main(String[] args) {
MyThread2 tl1=new MyThread2(1);
MyThread2 tl2=new MyThread2(2);
MyThread2 tl3=new MyThread2(3);
MyThread2 tl4=new MyThread2(4);
MyThread2 tl5=new MyThread2(5);
MyThread2 tl6=new MyThread2(6);
MyThread2 tl7=new MyThread2(7);
MyThread2 tl8=new MyThread2(8);
MyThread2 tl9=new MyThread2(9);
MyThread2 tl10=new MyThread2(10);
MyThread2 tl11=new MyThread2(11);
MyThread2 tl12=new MyThread2(12);
MyThread2 tl13=new MyThread2(13);
MyThread2 tl14=new MyThread2(14);
MyThread2 tl15=new MyThread2(15);
tl1.start();
tl2.start();
tl3.start();
tl4.start();
tl5.start();
tl6.start();
tl7.start();
tl8.start();
tl9.start();
tl10.start();
tl11.start();
tl12.start();
tl13.start();
tl14.start();
tl15.start();
}
}
java多线程编程技术12-13(执行start()的顺序不是执行run()的顺序)
于 2022-03-25 11:10:07 首次发布