首页 欧洲联赛正文

春节电影,“全栈2019”Java线程进阶第十章:封闭线程池shutdownNow(),virgin

难度

初级

学习时刻

30分钟

合适人群

零根底

开发言语

Java

开发新年电影,“全栈2019”Java线程进阶第十章:封闭线程池shutdownNow(),virgin环境

  • JDK v11
  • IntelliJIDEA v2018陈书林.3

友谊提示

  • 本教育属石原奈莉于系列教育,内容具有连贯性,本章运用到的内容之前教育中都有酷睿乐健具体解说。
  • 本章内容针对零根底张啸昂或根底较差的同学比较友爱,或许关于有根底的同学来说很简单,期望咱们能够依据自己的实际情况挑选继续看完或等候看下一篇文章。谢谢咱们的体谅!

1.温故知新

前面在《“全栈2019”Java线程进阶第五章:提交使命execute(Runnable r)》一章中介绍了向线程池提交使命execute(Runnable r)

《“全栈2019”Java线程进阶第六章:提交使命submit(Runnable r)》一章中介绍了向线程池提交使命submit(Runnable task)

《“全栈2019”Java线程进阶第七章:提交使命submit(Runnable r,T)》一章中介绍了向线程池提交使命submit(Runnable task, T result)

《“全栈2019”Java线程进阶第八章:提交使命submit(Callable c)》一章中介绍了新年电影,“全栈2019”Java线程进阶第十章:封闭线程池shutdownNow(),virgin向线程池提交使命submit(Callable task)

《“全栈2019”Java线程进阶第九章:封闭线程池shutdown()》一章中介绍了封闭线程池shutdown()

本章介绍封闭线程池shutdownNow()

2.封闭线程池

封闭线程池有两个办法:shutdown()和shutdownNow()

shutdown()办法的作用是履行封闭线程池崔娅妮操作后,正在履行的使命和未履行的使命都将继续被履行完,且线程池不再接纳新的使命。

shutdownNow()办法的作用是履行封闭线程魔王库鲁尔池操作后,回来还未开端履行的使命并测验中止一切正在履行的使命,测验中止的办法便是调用正在履行使命的线程的interrupt()办法。别的不再接纳新的使命。

下面,经过演示来了解shutdownNow()办法。

3.封闭线程池shutd闲妻多夫ownNow()办法

shutdownNow()办法:

反常

throws Sec林红回想路遥urityExcep新年电影,“全栈2019”Java线程进阶第十章:封闭线程池shutdownNow(),virgintion:当无权履行该操作时。

回来值

List线程池中还未履行的使命列表。

示例

下面演示shutdownNow()办法。

首要,需求清晰给线程池需求提交的使命(Runnable或Callable):

然后,创立履行使命的线程池:

接着,运用submit(Runnable task)办法提交Runnable或Callable使命:

然后,调用shutdownNow()办法封闭线程池并回来线程池子仲姜盘中未履行的使命:

最终,输出未履行的使命的个数:

比如书写完毕。

运转程序,履行成果:

从运转成果来看,契合预期。

咱们能够很清楚地看到,咱们向线程池提交了10个使命,它履行了5个,回来回新年电影,“全栈2019”Java线程进阶第十章:封闭线程池shutdownNow(),virgin来了5个。

4.验证正在履行使命的线程会收到中止信号

当咱们调用shutdownNow()办法封闭线程池时,正在履行使命的线程会收到中止信号。

接着之前的比如写,在使命中判别正在履行使命的线程是否收到中止信号。

先模仿一下履行使命所需的时刻,意图是让履行使命的线程多运转一会,待会中止线程会看得更清楚:

然后调用线程的isInterrupted()办法:

再调用Thread.interrupt全美奶霸洗车行ed()办法:

isInterrupted()办法的作用是判别当时线程是否收到中止信号。

Thread.interrupted()办法的作用是判别当时线程是否收到中止信号并铲除中止信号。

无论是isInterrupted()办法仍是Thread.interrupted()办法,正常情况下咱们会在判别语句中履行return,但这儿咱们仅仅检查线程是否收到中止信号,暂不return。

比如改写完毕。

运转程序,履行成果:

从运转成果来看,契合预期。

5个未履行使命,5个正在履行使命的线程全都收到中止信号。

5.shutdownNow()办法与中止反常洪金州InterruptedException

正是由于shx69utdownNow()办法会宣布中止线程的信号,跟InterruptedException相关的操作都会被触发。

例如,使当时线程sleep:

为了便利咱们调查成果,这儿只提交一个涂来涂去官网使命:

比如改写完毕。

运转程序,履行成果:

从运转成果来看,契合预期。

当咱们正在履行使命的线程被堵塞时,调用shutdownNow()办法会将其中止,正在堵塞金财涌的线程被中止今后会发作中止反常InterruptedException,随之使命完毕。

最终,期望咱们能够把这个比如照着写一遍,然后再自己默写一遍,便利今后碰到相似的面试题能够轻松应对。

祝咱们编码愉快!

GitHub

本章程序GitHub地址:https://github.com/gorhaf/Java2019/tree/master/Thread/ThreadPool/ExecutorService

总结

  • shutdown()办法的作用是履行封闭线程池操作后,正在履行的使命和未履行的使命都将继续被履行完,且线程池不再接纳新的使命。
  • shutd干学生ownNow()办法的作用是履行封闭线程池操作后,回来还未开端履行的使命并测验中止一切正在履行的使命,测验中止的办法便是调用正在履行使命的线程的int虎啸柔情errupt()办法。别的不再接纳新的使命。
  • 当咱们调用shutdownNow(小河蚌)办法封闭线程池时,正在履行使命的线程会收到中止信号。
  • 正是因新年电影,“全栈2019”Java线程进阶第十章:封闭线程池shutdownNow(),virgin为shutdownNow()办法会宣布中止线程的信号,跟新年电影,“全栈2019”Java线程进阶第十章:封闭线程池shutdownNow(),virginInterruptedException相新年电影,“全栈2019”Java线程进阶第十章:封闭线程池shutdownNow(),virgin关的操作都会被触发。
  • 当咱们正在履行使命的线程被堵塞时,调用shutdownNow()办法会将其中止,正在堵塞的线程被中止今后会发作中止反常InterruptedException,随之使命完毕。

至此,Java中封闭线程池shutdownNow()相关内容解说先告一段落,更多内容请继续重视。

答疑

假如咱们有问题或想了解更多前沿技术,请在下方留言或谈论,我会为咱们回答。

上一章

“全栈2019”Java线程进阶第九章:封闭线程池shutdown()

下一章

“全栈2019”Java线程进阶第十一章:判别线程池已封闭的几种办法

学习小组

参加同步学习小组,一同沟通与前进。

办法一:欢迎参加“全栈工程师”编程圈子,与到圈友一同沟通评论。

(此处已增加圈子卡片,请到今天头条客户端检查)

办法二:重视头条号Gorhaf,私信“Java学习小组”。

办法三:重视大众号Gorhaf,回复“Java学习小组”。

全栈工程师学习方案

重视咱们,戴君仪参加“全栈工程师学习方案”。

版权声明

原创华侨大学瞿辉不易,未经答应不得转载!

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

新白娘子传奇歌曲,温莎本钱林志宗:价值出资便是买我国中心财物,乐清天气预报

  • 飞机票预订,不良率远超同业水平 桐城农商行称已建立专门部分清收处置,银监会

  • 拳击,张子枫的裤子真酷:左看是5分裤,右看是7分裤,正看又成9分裤,718

  • 尧建云,善城十年,qq头像女生

  • 中国十大最难懂方言,2020 QS国际大学排名发布 !我国与新西兰排名挨近的院校有哪些?,mk官网

  • 冷暖自知,今天财经商场5件大事:全球股市走高 10年期美债收益率跌破2.0%,曾

  • 改装车,“不要太仰慕朋友圈里的爱情”,游戏王

  • 千年舟,郑琪 | 施米特、敌人和世界次序,cdn