多线程(五)

线程池通过减少线程的创建和销毁来提高效率,降低资源消耗。当任务提交到线程池,如果线程数小于核心线程数,则创建新线程;否则任务进入队列。Java线程池有核心线程数、最大线程数等参数,以及不同的任务拒绝策略,如丢弃任务或由调用者运行任务。
摘要由CSDN通过智能技术生成

1、案例----线程池

         因为进程创建销毁时比较低效(内存的申请和释放),所以引入了线程。线程共享内存资源,新的线程可以利用之前的资源而不需要重新申请,此时效率会提高。

        但若创建线程的速率进一步变频繁了,此时线程的创建和销毁仍不可忽视。想要进一步优化速度,采用线程池。

提问:为什么在线程池中取比创建线程快?

答:创建线程实在操作系统的内核中完成的,涉及到用户态到内核态的切换操作,这个操作存在一定开销。

从线程池取线程,把线程放回线程池,这是纯用户态的实现的逻辑。从系统这里创建进程,则是用户态到内核态共同完成的逻辑。

 线程池最大的好处就是减少每次启动、销毁线程的损耗。

(1)线程池的使用 

 

 (2)自己实现线程池

 =》一个线程池可以同时提交N个任务。

=》对应的线程池中有M个线程来负责完成这N个任务。

思路:生产者消费者模型,可以解决将N个任务分给M个线程的问题。先应用一个阻塞队列,每个被提交的任务,都放在阻塞队列中。用M个线程来取队列元素,如果队列空了,M个线程阻塞等待;如果队列不为空,每个线程都取任务并执行,再来取下一个任务......知道队列为空。

以下是一个固定线程池数目的线程池的实现:

 执行结果:

 线程池的优点:

=》 降低资源消耗。减少线程的创建和销毁带来的性能开销。

=》提高响应速度。当有任务来时,可以直接使用,不用等待创建线程。

=》可管理性。进行统一的分配,监控,避免大量线程因互相抢占系统资源导致阻塞现象。

(3)JAVA线程池有几个核心的参数,这几个参数的作用是: 

->corePoolSize:核心线程数。当提交一个新的任务到线程池,如果当前线程池运行的线程数(包括闲置的线程)小于核心线程数,则会创建一个新的线程作为核心线程来执行该任务。

->maximumPoolSize:线程池允许的最大线程数。当提交一个新的任务到线程池,如果当前线程池运行的线程数(包括闲置的线程)大于核心线程数,但小于允许的最大线程数,并且等待队列满时,会创建一个新的线程处理该任务。

->keepAliveTime:当线程池中线程数量大于核心线程数时,限制的线程最长存活的时间

->unit:时间单位

->workQueue:保存任务的队列,当线程数大于核心线程数时,新的任务将保存到该队列。

->threadFactory:线程工厂,线程池中的线程都是通过该工厂创建的。

->handler: 任务拒绝执行策略。拒绝策略如下:

        =》AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。

        =》DiscardPolicy:丢弃新来的任务

        =》DiscardOldestPolicy:丢弃最先来的任务,然后重新尝试执行任务

        =》CallerRunsPolicy:把该任务交给添加此任务的线程来执行

嘿呦秀儿
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
易语言多线程传递多参数
07-23
在编程领域,多线程是实现并发执行任务的重要机制,特别是在易语言中,它能有效提升程序的执行效率。易语言是一种中文编程语言,旨在降低编程门槛,让普通用户也能进行程序开发。本文将深入探讨易语言中的多线程以及...
Linux系统下的多线程编程入门.pdf
12-20
在Linux系统下进行多线程编程是开发高效并发应用程序的关键技术之一。本文将深入探讨Linux环境中的多线程概念、创建与管理线程的方法、线程同步与通信机制,以及多线程编程中可能遇到的问题和解决策略。 一、多线程...
线程休眠 java_Java多线程(七)——线程休眠
weixin_28913019的博客
02-12 275
一、sleep()介绍sleep() 定义在Thread.java中。sleep() 的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”。sleep()会指定休眠时间,线程休眠的时间会大于/等于该休眠时间;在线程重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待cpu的调度执行。二、sleep()示例下面通过一个简单示例演示sleep()的用法。packageco...
java-同时最多只允许5个线程执行某个方法(Semaphore、线程池)
u013324488的专栏
05-21 2385
第 文章目录第前言一、e1.演示4.片总结 前言 kotlin与gradle。 一、e 1.演示 工 4.片 首 总结 以上就是今天要讲的内容,本文仅仅简单介绍了kotlin的其他基础知识。下一章将介绍kotlin与gradle。 ...
线程池实现多线程的并行执行和串行执行
weixin_39209728的博客
04-28 887
【代码】线程池实现多线程的并行执行和串行执行。
多线程 5 线程休眠 回顾 线程安全
czhc1140075663的博客
07-06 111
图片转载
多线程学习笔记(一)--线程的创建
qq383539535的博客
06-10 247
今天准备开始全面学习一下线程,写一篇学习笔记总结一下。代码是借鉴其他博主的,我根据个人理解总结一遍,用于加深一下印象。线程创建方式参考:https://www.cnblogs.com/yjd_hycf_space/p/7526608.html进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。(进程是资源分配的最小单位)线程:同一类线程共享...
Java 线程池详解
深圳市多克创新科技有限公司
02-07 1313
Java 线程池详解
深入多线程多线程为何要使用休眠?(案例+代码示例)
一颗剽悍的种子的博客
08-10 2701
使用sleep加速和放大了问题的发生,起到模拟网络延时的效果。sleep*时间达到后线程会进入就绪状态。还有第二点会在谈到多线程同步时谈到,在每个对象中都会有一个锁,而sleep不会释放锁。
Java 多线程多线程带来的的风险-线程安全、多线程个经典案例
热门推荐
1226
04-01 1万+
日常开发中如果用到多线程编程,也一定会涉及到线程安全问题 线程安全这个问题就不太好理解 正因为如此,程序猿们才尝试发明出更多的编程模型来处理并发编程的任务 例如:多进程、多线程、actor、csp、async+await、定时器+回调 操作系统,调度线程的时候,是随机的 (抢占式执行) 正式因为这样的随机性,就可能导致程序的执行出现一些 bug 如果因为这样的调度随机性引入了 bug,就认为代码是线程不安全的,如果是因为这样的调度随机性,也没有带来 bug,就认为代码是线程安全的 这里的线程安全指的是有.
多线程实现30个人抢个座位
12-21
本题目“多线程实现30个人抢个座位”是一道典型的多线程同步问题,用于考察程序员对并发控制的理解和应用。下面我们将详细探讨这个问题的解决方案及其背后的原理。 首先,代码中定义了一个名为`Seat`的类,该类...
Delphi多线程详解_delphi_delphi多线程_多线程_
09-29
在编程领域,多线程是一种常见且强大的技术,它允许应用程序同时执行多个任务,从而提高程序的效率和响应性。Delphi,作为一个流行的Object Pascal开发环境,提供了丰富的工具和库来支持多线程编程。本篇文章将深入...
多线程基础与基于多线程的简单聊天室
06-24
在IT行业中,多线程是程序设计中的一个重要概念,尤其在Java编程中,它被广泛应用于提高应用程序的并发性能和响应速度。本压缩包“多线程基础与基于多线程的简单聊天室”提供了对多线程技术的实践理解和二次开发的...
【C++刷题】力扣-#121-买卖股票的最佳时机
会写代码的饭桶
10-16 601
给定一个数组 prices,其中 prices[i] 表示第 i 天的股票价格。假设你可以在第 i 天买入并在第 j 天卖出股票(i ≤ j),设计一个算法来计算你所能获取的最大利润。注意你只能持有一股股票,并且你不能同时参与多笔交易(即在再次买入前必须卖出股票)。
java 异常包装
fdvvg的博客
10-17 373
通过异常包装,可以在Java中有效地处理和传递异常。这样做不仅能保持原始异常的信息,还能为上层调用者提供更多的上下文信息。
基于SSM班级事务管理系统的设计
2401_87849773的博客
10-15 468
管理员账户功能包括:系统首页,个人中心,学生管理,班委管理,班会组织管理,健康档案管理,党员发展管理,党员培训管理,学生成绩管理。主要技术:Java,Spring,mybatis,mysql,jquery,html。班委账号功能包括:系统首页,学生管理,学生成绩管理,活动信息管理,班费通知管理。服务器:SpringBoot自带 apache tomcat。JDK版本:Java JDK1.8。数据库可视化工具: navicat。数据库版本: mysql5.7。开发系统:Windows。
JavaWeb合集05-SpringBoot基础知识
qq_57340195的博客
10-17 898
Autowrite :自动装配,通过声明的数据类型来装配对应的bean对象。缺点,只能获取到一个相同类型的bean对象,如果有IOC容器里面有2个Bean对象,使用@Autowrite依赖注入就好报错。由于三层架构中,每一层都需要下次成来提供对应的方法,所有要new 下一次的对象,如果上一层的类名发送改变,那么上一层就需要修改对应的类名,如下。3、@Resource注解:通过它来代替@Autowrite注解,直接指定要注入的Bean对象,参数name的值就是要注入的Bean对象。
确保Spring Boot定时任务只执行一次方案
2301_76419561的博客
10-14 766
确保Spring Boot定时任务只执行一次有多种方法,你可以根据实际需求选择最适合的方法。如果你需要更复杂的任务调度或周期性执行,@Scheduled注解和接口是更合适的选择。而对于一次性的初始化任务或应用程序启动任务,注解和实现接口则更为简洁明了。
SpringBoot智能物流管理系统开发指南
最新发布
2401_85762266的博客
10-18 1060
在概念模式的设计中,E-R模型法是最常见的设计方法。B/S架构的运行方式是在远程的服务器上把开发的软件系统部署在远程的服务器上,在部署好软件系统之后就可以实现在任何接入互联网的电脑上访问部署好的软件系统。6、网络上的客户端和服务器可以用来编程任何独立的编程环境,也有中国,GB2312,BIG5,日文写作,一般基金,用于支持多国语言,并且可以嵌入在数据表和其他软件shift_jis访问柱可以用作的名称。编程语言,如C, C ++,Python和Java的,的Perl,PHP,埃菲尔铁塔,Ruby和Tcl的。
Windows多线程编程指南
**、MFC对多线程编程的支持** MFC(Microsoft Foundation Classes)是微软提供的一种C++类库,它封装了Win32 API,简化了多线程编程。MFC通过`CWinThread`类来实现线程,提供了更高级别的抽象,使代码更加简洁易读...
写文章

热门文章

  • 数据库基础操作 1298
  • 多线程(五) 307
  • 博客系统的自动化测试 258
  • MySQL的学习【进阶】 244
  • 数组的定义与使用(一) 231

最新评论

  • 博客系统的自动化测试

    沫沫198: 厉害厉害,大佬好牛

  • java数据类型与变量

    CSDN-Ada助手: 推荐 Java 技能树:https://edu.csdn.net/skill/java?utm_source=AI_act_java

最新文章

  • 博客系统的自动化测试
  • 多线程(四)
  • 多线程(三)
2023年31篇
2022年7篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家丽水景观玻璃钢雕塑多少钱定西玻璃钢景观雕塑哪家好永康玻璃钢人物雕塑制作湖北个性化玻璃钢雕塑制作商场气球美陈厂家河南玻璃钢瓜果雕塑广东玻璃钢雕塑摆件制造甘南仿真人物玻璃钢雕塑厂家商场服装美陈讲解芜湖卡通玻璃钢雕塑制作哪家好玻璃钢鹿雕塑找哪家学校玻璃钢彩绘雕塑长春景区玻璃钢雕塑制作仿铜玻璃钢雕塑制作方法铸铜玻璃钢卡通雕塑定制天津多彩玻璃钢雕塑订做价格周口制作玻璃钢雕塑厂报价单几何长颈鹿玻璃钢雕塑大摆件开阳玻璃钢雕塑制作哪家好宿迁主题玻璃钢雕塑丽江市玻璃钢雕塑成都商场美陈生产美陈玻璃钢雕塑制作北京酒店玻璃钢花盆定做小提琴玻璃钢花盆浦口商场国庆美陈玻璃钢大帝雕塑玻璃钢大白菜雕塑多少钱梁海玻璃钢雕塑南京多彩玻璃钢雕塑供应商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化