好像要把for循环执行完了才执行shutdown

好像要把for循环执行完了才执行shutdown

4:05的时候老师说该线程已经过了1.5秒了,shutdown已经执行过了,我自己测试下来要把for循环执行完了才执行shutdown

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

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

1回答
好帮手慕小尤 2021-06-15 15:54:10

同学你好,执行完shutdown并不会立马就结束线程,而是会将存量的任务全部执行完,所以同学看到循环还在执行。具体是否有执行shutdown,同学可以通过isSutdown进行测试,如下所示:

http://img1.sycdn.imooc.com//climg/60c85c0909fca69f12450671.jpg

注:isSutdown在该小节后面进行讲解,同学可以继续学习。

祝学习愉快!

  • rock221 #1
    Thread.sleep(1500);
    System.out.println( executorService.isShutdown());
    executorService.shutdown();

    shutdown 上面设置了线程休眠1500毫秒,是什么意思阿?线程不是在内部循环中调用吗?那这个休眠1500毫秒的线程是针对谁啊。 

    2021-06-18 17:55:41
  • rock221 #2

    老师,明白了,这是主线程的休眠状态, 因为有多个线程,所以主线程会依次向下执行,所以也就循环体中的没有执行完,就会执行循环外的数据了(这属于异步执行吗,也就是之前的没处理完,但是没报错,就会继续往下执行?), 如果是1个线程的话, 就是依次执行了,

    2021-06-18 18:04:07
  • 同学你好,异步执行是不需要等待别的任务完,就立刻执行,这里建议同学有新疑惑时重新开一个问答哟~

    祝学习愉快~

    2021-06-18 19:05:02
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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