多线程(一)——线程池概念

知识点复习:

1、数据库连接池——jdbc连接池优化
2、经常创建、启动一个线程是非常耗时的过程
3、线程的生命状态:新建、准备、启动、休眠

新知识:

一、合理利用线程池的3个好处

1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的损耗
2 )提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即
3)提高线程的可管理性。线程是稀缺资源,如果无限制地创建,部件会消耗资源,韩慧降低系统的稳定性,使用线程可以进行统一分配,执行调优和监控,但是要做到合理利用线程池,必须对其实现原理了如指掌。


二、java中线程池的核心类是ThreadPoolExecutor
三、线程池的四种创建方式
java通过Exectutors提供四种线程池分别是
1)newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程
2)newFixedThreadPool创建一个定长线程池,可控制线程池,可控制线程最大并发数,超出的县城在队列中等待
3)newScheduledThreadPool创建一个定长线程池,支持定时及周期性任务执行
4)newSingleThreadExecutor创建一个单线程话的线程池,它只会用唯一的工作线程来执行任务保证所有任务都是按照指定顺序(FIFO,LIFO,优先级)执行

总结:

线程池的管理方法
1、如果核心池的线程数小于CorePoolSize,则创建新线程
2、如果核心池的线程大于等于CorePoolSize,则将线程加入等待队列(BlockingQueue)。
3、如果不能加入等待队列,则在线程池允许最大值范围内创建线程并执行任务
4、如果线程数大于等于MaxPoolSize,那么执行拒绝策略

 

画了个草图

平时开发中可能会用到newFixedThreadPool比较多

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值