package test;
public class BN extends Thread{
private int i;
@Override
public void run() {
for(;i<100;i++){
System.out.println(this.getName()+" "+i);
}
}
public static void main(String[] args) {
for(int i=0;i<100;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
if(i==20){
BN s=new BN();
s.run();
s.start();
}
}
}
}
为什么线程新建后,先调用run,再调用start,不报错,start也不执行
答案:2 悬赏:60 手机版
解决时间 2021-02-21 16:20
- 提问者网友:世勋超人
- 2021-02-20 19:48
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-02-20 21:13
个人理解,调用start就是启动一个线程,线程会自动执行run函数。直接调用run,就是用本线程去执行run里面的内容,run里循环结束,然后返回, 然后start(),然后线程启动,由于循环变量i已经100了,线程里,循环直接结束。
刚测试了,就是这样。run里面,改成这样:Thread.currentThread().getName()来看。
刚测试了,就是这样。run里面,改成这样:Thread.currentThread().getName()来看。
全部回答
- 1楼网友:迷人又混蛋
- 2021-02-20 21:24
可以私聊我~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯