点击领取优惠~
365 字
2 分钟
线程池及其应用
线程池及其应用
什么是线程池?
线程池,简单来说,就是一个管理线程的池子。
管理线程的池子
①、频繁地创建和销毁线程会消耗系统资源,线程池能够复用已创建的线程。
②、提高响应速度,当任务到达时,任务可以不需要等待线程创建就立即执行。
③、线程池支持定时执行、周期性执行、单线程执行和并发数控制等功能。
工作中线程池的应用吗
之前我们有一个和第三方对接的需求,需要向第三方推送数据,引入了多线程来提升数据推送的效率,其中用到了线程池来管理线程。
业务示例
主要代码如下:
主要代码
线程池的参数如下:
- corePoolSize:线程核心参数选择了 CPU 数 ×2
- maximumPoolSize:最大线程数选择了和核心线程数相同
- keepAliveTime:非核心闲置线程存活时间直接置为 0
- unit:非核心线程保持存活的时间选择了 TimeUnit.SECONDS 秒
- workQueue:线程池等待队列,使用 LinkedBlockingQueue 阻塞队列
同时还用了 synchronized 来加锁,保证数据不会被重复推送:
synchronized (PushProcessServiceImpl.class) {}ps:这个例子只是简单地进行了数据推送,实际上还可以结合其他的业务,像什么数据清洗啊、数据统计啊,都可以套用。
线程池及其应用