为了账号安全,请及时绑定邮箱和手机立即绑定

关于线程的强制运行的一个问题?

关于线程的强制运行的一个问题?

一只斗牛犬 2019-03-20 09:19:41
class MyThread implements Runnable{        @Override    public void run() {        // TODO Auto-generated method stub                for(int i=0;i<10;i++){            System.out.println(Thread.currentThread().getName());        }            }    }public class Test {            public static void main(String[] args) {        MyThread my = new MyThread();        Thread t = new Thread(my,"thread-a");        t.start();                for(int i=0;i<100;i++){            System.out.println(i);            if(i>50){                try {                    t.join();                } catch (InterruptedException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                            }        }            }        }代码如上, 我知道在i>50 会强制t运行, 但是t.start()时 线程t 不就已经启动了吗?为什么在i<50时不会输出thread-a?
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

你看到的只是你单次运行的结果罢了(由于线程调度,可能使得 i > 50 之后才开始输出 thread-a),你多运行几次就可以看到你想要的结果了:
https://img1.sycdn.imooc.com//5cb928d80001383301280527.jpg

查看完整回答
反对 回复 2019-04-19
  • 1 回答
  • 0 关注
  • 380 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号