什么是线程池?工作中线程池的应用
  qPDHaeUaDv9Q 2023年11月02日 82 0

一、什么是线程池

简单理解,它就是一个管理线程的池子。

它帮我们管理线程,避免增加创建线程和销毁线程的资源损耗。因为线程其实也是一个对象,创建一个对象,需要经过类加载过程,销毁一个对象,需要走GC垃圾回收流程,都是需要资源开销的。

提高响应速度。 如果任务到达了,相对于从线程池拿线程,重新去创建一条线程执行,速度肯定慢很多。

重复利用。 线程用完,再放回池子,可以达到重复利用的效果,节省资源。

线程池的参数如下:

corePoolSize:线程核心参数选择了CPU数×2

maximumPoolSize:最大线程数选择了和核心线程数相同

keepAliveTime:非核心闲置线程存活时间直接置为0

unit:非核心线程保持存活的时间选择了 TimeUnit.SECONDS 秒

workQueue:线程池等待队列,使用 LinkedBlockingQueue阻塞队列

同时还用了synchronized 来加锁,保证数据不会被重复推送:

synchronized (PushProcessServiceImpl.1 class) {}

二、工作中线程池的应用

之前我们有一个和第三方对接的需求,需要向第三方推送数据,引入了多线程来提升数据推送的效率,其中用到了线程池来管理线程。

主要代码如下:

什么是线程池?工作中线程池的应用_推送

什么是线程池?工作中线程池的应用_线程池_02

这个例子只是简单地进行了数据推送,实际上还可以结合其他的业务,像什么数据清洗啊、数据统计啊,都可以套用。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: memcached 下一篇: 动态规划的特点及其应用
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
qPDHaeUaDv9Q