线程池的使用ThreadPoolExecutor

一、线程池是什么
顾名思义,好比一个存放线程的池子,我们可以联想水池。线程池意味着可以储存线程,并让池内的线程得以复用,如果池内的某一个线程执行完了,并不会直接销毁它有生命周期,可以存活一些时间,待到下一个任务来时,它会复用这个在等待中的线程,避免了再去创建线程增加的额外系统开销。

二、为什么使用线程池及它的作用
创建线程和销毁线程的花销是比较大的,这些时间有可能比处理业务的时间还要长。这样频繁的创建线程和销毁线程,再加上业务工作线程,消耗系统资源的时间,可能导致系统资源不足。
线程池作用就是限制系统中执行线程的数量。
1)提高效率创建好一定数量的线程放在池中,等需要使用的时候就从池中拿一个,这要比需要的时候创建一个线程对象要快的多。2)方便管理可以编写线程池管理代码对池中的线程同一进行管理,比如说启动时有该程序创建100个线程
每当有请求的时候,就分配一个线程去工作,
如果刚好并发有101个请求,那多出的这一个请求可以排队等候,避免因无休止的创建线程导致系统崩溃。

三、创建线程池的几种方式
1)通过Executors工具类提供的不同静态方法创建线程池,如下所示:
Executors.newSingleThreadExecutor()
创建一个单线程的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIF0,LIFO,优先级)执行。

Executors.newFixedThreadPool()
创建一个固定大小的线程池,可控制线程最大并发数࿰

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值