请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

执行shutdown() shutdownNow方法,任务如何处理

图片描述

老师这个理解对吗?
(1)shutdown():不会立即终止线程池,而是要等所有任务缓存队列中的任务都执行完后才终止,但再也不会接受新的任务
(2)shutdownNow():立即终止线程池,并尝试打断正在执行的任务,并且清空任务缓存队列,返回尚未执行的任务
(3)shutdownNow 会返回 被打断正在执行的任务 + 未执行的任务

正在回答

1回答

你好,大体上是对的,但个别细节点还是要说一下。shutdownNow方法是将线程池的状态设置为STOP,此时新任务不能被提交(提交会抛出异常),线程池中所有线程都会收到中断的信号。具体线程会作出什么响应,要看情况,如果线程因为调用了Object的wait、join方法或是自身的sleep方法而阻塞,那么中断状态会被清除,同时抛出InterruptedException

0 回复 有任何疑惑可以回复我~
  • 提问者 无道8 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-05-24 07:53:18
  • 提问者 无道8 #2
    大体上是对的 是不是第三点 “shutdownNow 会返回 被打断正在执行的任务 + 未执行的任务” 应该改为 “shutdownNow 会返回 未执行的任务”
    回复 有任何疑惑可以回复我~ 2019-05-24 07:54:48
  • Jimin 回复 提问者 无道8 #3
    为什么呢
    回复 有任何疑惑可以回复我~ 2019-05-25 08:48:27
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信