【java基础】线程池的状态流转

news/2024/10/3 0:26:14

前言:

首先要知道什么是线程池?

池化:数据库连接池, 线程池,字符串常量池

线程是用来执行任务的,

如果不用线程池,那么线程每次使用前创建,使用后释放,资源利用率低。所以说用线程池提高了线程对象利用率。

所以可以用线程池完成,先创建好那么多个线程对象在那等着,类比银行客户等待窗口办理业务。默认开放3个窗口(核心线程数),等待人多,就要增开窗口,渐渐增大到最大(最大线程数)。如果一个窗口长时间没有顾客来办理(线程对象在存活时间内没有接到任务,则销毁该线程)。阻塞队列的长度可类比客户等待区,也就是说当并发任务数超过了(最大线程数+

阻塞队列长度)则根据拒绝策略拒绝新任务。所以说线程池能控制并发数量

线程池用线程工厂去创建线程对象。

代码:自定义一个线程池。

 

正文:

线程池有这五种状态:Running,Shutdown,Stop,Tyding,Terminate

我们就可以重写terminate方法去完成一些环境清理等工作。

图侵删,源:https://www.bilibili.com/video/BV1QM4m1d7JY?p=5&vd_source=756399be2f5d306a68f761927effd974 个人记录用。

 

tryTerminate()

 这里用的ctl 保持原子性,AtomicInteger有32个比特位,四个字节,ctl高3位存储线程池状态,低29位当前线程池线程数量。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/44713.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Spring学习笔记

1 spring介绍 1)为什么学习spring ​ 1. Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>90% ​ 2. 简化开发,降低企业级开发的复杂性 ​ 3. 框架整合,高效整合其他技术,提高企业级应用开发与运行效率 ​ 作为一个java程序员, spring必学.,…

电脑连光猫中第一个IPTV端口而不是LAN端口导致无法上网

背景 卧室的电脑连接的是光猫的第一个端口,一直没有网络,网线检测8个灯也是之亮6个灯,以为是网线有问题,而没有想到是端口接错了,换一个端口就可以解决的问题。 光猫设备上iptv口和lan口有什么区别?光猫设备有lan口和iptvicon口,有些简称tv口,它与lan口有什么区别了,两…

第七章嵌入式作业

一、利用SysTick定时器编写倒计时程序,如初始设置为2分30秒,每秒在屏幕上输出一次时间,倒计时为0后,红灯亮,停止屏幕输出,并关闭SysTick定时器的中断。 Systick..c: void systick_disable(void) { // 禁止SysTick中断和停止SysTick计时器 SysTick->CTRL &= ~(SysT…

LLM大模型: llama源码要点解读(二)

1、attention机制:这算是transformer架构最大的创新点了!利用attention机制,找到token之间的相似度(或则说距离),根据相似度调整token本身的embedding值,本质就是根据token的context调整自身的embedding值,这个思路非常符合人脑对语言和语义的理解!比如”苹果“这个词,…

西电计科嵌入式程序设计课程实验源码

西电计科院嵌入式程序设计课程实验源码.前言 博主是21级计科院的,在此澄清一下部分学长留存的实验经验:实验比较基础,并不像之前所说非常棘手; 可以提前准备,但也没太大必要,认真做下午基本就能完全结束; 实验三代码需要自己编写,但结构清晰,较为容易;用 Qt 编写嵌入…

Navicat Premium 15永久使用,安装教程,快捷键

哈喽,大家好,我是木头左!引言 在当今信息化的时代,数据库已经成为了生活和工作中不可或缺的一部分。而Navicat作为一款功能强大的数据库管理工具,深受广大开发者和数据库管理员的喜爱。最新版的Navicat Premium 15 已经发布了,但是是收费的,可以免费试用14天,为了享受永…

嵌入式作业5

一、编写UART_2串口发送程序时,初始化需要设置哪些参数? 1. 需要为UART_2相关的各个变量赋值,初始化各个地址参数: 2. 关总中断 DISABLE_INTERRUPTS;3. 用户外设模块初始化 gpio_init(LIGHT_BLUE,GPIO_OUTPUT,LIGHT_ON); //初始化蓝灯 //uart_init(UART_User,115…

代码随想录 算法训练营d7 哈希表 Leetcode454 四数相加2 Leetcode383 赎金信 Leetcode15 三数之和 Leetcode18 四数之和

Leetcode454 四数相加2 题目链接 简单理解 四个数组的数 构成元组 相加为0 思想:参考力扣第一题 两数之和 才用哈希表解决问题 通过将ab数组之和存储到哈希表中,并记录次数 再通过 计算-(c+d)去匹配哈希表 如果存在 那么count+= 次数 即可 class Solution {public int f…