第二章 第三四节 线程池技术以及使用 上
线程池技术介绍
1.线程池的作用
避免重复不断地创建、销毁线程,浪费系统资源
PS:线程池可以成一个容器
多线程业务:发短信或者发送邮件(异步任务);请求第三方接口(异步任务);
2.线程池原理
3.线城池的销毁
shutDown 等待正在执行任务执行完毕,才会销毁
shutDownNow 立即停止所有线程池执行任务销毁
4.线程池的创建
1.直接利用函数创建
Executors 创建线程池
ThreadPoolExecutor 方法
2.和spring的整合
ThreadPoolTaskExecutor
线程池的使用
1.线程池的测试
new ThreadPoolExecutor(mainNm, maxCore, times,timeUnit, BlockingQueue)
//mainNm 主线程个数,一般为cpu的两倍
//maxCore 最大线程数量, cpu*4
//times 线程空闲时间
//timeUnit 时间单位
//BlockingQueue 阻塞队列
//队列分类
// SynchronousQueue; 一个无界的缓存队列,不能指定队列容量
// ArrayBlockingQueue; 一个有界的缓存队列,可以指定队列容量
// LinkedBlockingDeque; 无界的缓存队列,可以指定队列容量
threadPoolExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
threadPoolExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardOldestPolicy());
// 也可以通过上述创建拒绝策略
本文来自博客园,作者:两块五的菜鸟,转载请注明原文链接:https://www.cnblogs.com/rushintocloud/p/17777413.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!