当自定义类继续Thread重写run方法是,里面使用getName得到的结果就不是随机的
public class MyThread extends Thread {
public MyThread(String name) {
super(name);
}
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(getName()+":正在执行!"+i);
}
}
}
public class Demo01 {
public static void main(String[] args) {
System.out.println("这里是main线程");
MyThread mt = new MyThread("小强");
mt.start();
for (int i = 0; i < 20; i++) {
System.out.println("旺财"+i);
}
}
}
这里是main线程
旺财0
旺财1
旺财2
旺财3
旺财4
旺财5
旺财6
旺财7
旺财8
旺财9
旺财10
旺财11
旺财12
旺财13
旺财14
旺财15
旺财16
旺财17
旺财18
旺财19
小强:正在执行!0
小强:正在执行!1
小强:正在执行!2
小强:正在执行!3
小强:正在执行!4
小强:正在执行!5
小强:正在执行!6
小强:正在执行!7
小强:正在执行!8
小强:正在执行!9
小强:正在执行!10
小强:正在执行!11
小强:正在执行!12
小强:正在执行!13
小强:正在执行!14
小强:正在执行!15
小强:正在执行!16
小强:正在执行!17
小强:正在执行!18
小强:正在执行!19
我试过去掉getname得到的结果就随机
那么是什么原因造成这种结果
多运行几次试试,或者循环次数增大一些。
测试效果是可以交替输出的。这个跟电脑cpu性能有关系。