JavaEE--线程池与定时器

本文详细介绍了Java中的线程池(包括核心参数、创建方式以及标准库提供的Executor接口)和定时器(如标准库的Timer类及自定义实现),重点讲解了如何利用线程池提高效率和定时器的定时任务调度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.线程池

1.线程池的简要介绍及其优点

为了解决频繁创建和销毁线程带来的巨大开销问题,我们引入了线程池。线程池,简单来说就是提前把线程创建好,放到用户态代码中写的数据结构里面,需要使用的时候从池子取,用完了再放回去。使用线程池避免了直接调用api创建和销毁线程这种需要内核完成的工作,整体上都是用户态代码,在很大程度上提高了效率。

2.线程池参数

corePoolSize:核心线程数 (线程池最少线程数)

maximumPoolSize:最大线程数 (线程池最大线程数)

keepAliveTime:非核心线程允许空闲的最大时间 (在该时间内没有任务执行,就被回收)   (非核心线程数+核心线程数=最大线程数)

unit:keepAliveTime参数的时间单位

workQueue:线程池的任务队列 (线程池提供submit方法,让其他线程把任务交给线程池,该队列把要执行的任务保存起来,以便后续线程池内部的工作线程消费这个队列,从而完成具体的任务执行)

threadFactory:线程工厂,把线程的属性提前初始化

handler:拒绝策略,总共分为四种

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值