码上敲享录 > java高并发常见问题 > java高并发包之shutdown()和shutdownNow()的区别

java高并发包之shutdown()和shutdownNow()的区别

上一章章节目录下一章 2019-05-13已有1501人阅读 评论(0)

java高并发包之shutdown()和shutdownNow()的区别


解决方法:

1.shutdown()的作用是使当前未执行完的线程继续执行,而不再添加新的任务Task,而线程池会继续运行直到所有任务执行完才会停止。


2.方法shutdownNow()的作用是中断所有的任务Task,返回值是List<Runnable>,List对象存储的是还未运行的任务,也就是被取消掉的任务。

分两种情况:

第一种就是如果在线程代码中使用以下代码,则就中断了正在执行的任务,且抛出InterruptedException异常;还有一种情况就是如果没在线程代码中使用以下代码,则池中正在运行的线程直到执行完毕,而未执行的线程不再执行,也从执行队列中清除。

if (Thread.currentThread().isInterrupted() ==true) {

throw new InterruptedException();

}


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交