| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java并发系列「5」-- Thread 线程池 源码解析 以及 上一章问题解释 -> 正文阅读 |
|
[Java知识库]Java并发系列「5」-- Thread 线程池 源码解析 以及 上一章问题解释 |
@TOC# Java并发系列
线程池的任务执行流程;我先上一段代码:
现在这段代码; 这里 我先抛一个问题出来,假设我们往这个线程丢任务; 连续丢50个 我们会在第几个任务触发异常? 放出全部代码:
我们画图了解一下;
以上是第一段源码;
我们 看一遍图。 加深一下理解: 一张图 我们就可解释清楚了 任务 进入 线程池 的一个加入顺序了; 这样 我们开始来解释执行结果打印: 我们改一下代码 ; 这里如果是 10 15 5 不好区分; 我们改成 10 13 7
一下是结果: 为什么 10~16 最后打印。 现在应该明白了吧? 这里 我们就把线程池的执行流程弄清楚了 以及任务加入队列这一部分 的顺序弄清楚了; ThreadPool 线程状态;线程的 生命周期的 每一个转折点 就是线程状态; 线程状态: 分别是
Running
Shutdown
Stop
TidYing
Terminated
我们简单理解一下 Shutdown,Stop 我们使用线程池 调用2个方法
shutdown : 我们调用这个方法 可以讲线程 转变为 shutdown 状态; 这时候在运行的线程 还会继续运行; stop : 我们调用 shutdownNow 方法 线程池变成stop 那么线程 不管它是否在运行 都会立即停止; 这两个状态之后 就会进入到 TidYing 状态 就等待队列清空后 调起 : Terminated Terminated 状态: 线程池彻底终止; 线程池状态就完毕了; 线程本身的生命状态; 创建线程池的拒绝策略一共有四种策略 AbortPolicy: 丢弃任务并抛出异常(RejectedExecutionException) *
就是这样 把拒绝策略加入到了该线程池当中; 总结:
see you |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:25:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |