Java并发编程-Java线程池

108 篇文章 3 订阅
本文详细介绍了Java线程池的工作原理、重要组件如ExecutorService、ThreadFactory和拒绝策略,以及如何通过Excutors工具类创建线程池。强调了线程池的核心线程数、最大线程数、缓冲队列和拒绝策略的选择对系统性能的影响,并提供了不同类型的线程池实例。同时,讨论了Callable接口和Future接口在异步操作中获取返回值的角色,以及在使用线程池时可能面临的挑战和解决方案。
摘要由CSDN通过智能技术生成

Java并发编程-Java线程池

一、线程池原理与应用(重点)

我们知道线程的资源是非常宝贵的,创建一个线程,需要从代码层,再到JVM层,再到操作系统层。原生的线程走一圈,中间的线程状态(进行变更),之后走回来。整个过程,它的成本和代价是特别高的。

所以,一个理想的做法是,在应用运行的时候先直接创建一组线程,然后在重复利用的过程中,一直利用这些线程。就跟连接池是一样的。

池化是一种综合性的设计模式。

当一个资源很宝贵,而且是可以复用的,这时候就可以在上面建一个池。一开始就初始化一批,然后就一直轮换着使用。

如果每次使用的时候都有开始和结束,那么要在中间加一个代理,把它的开始和结束变成一个假的。不真正的把它销毁掉。只需要把它的开始变成从这个池里借一个可用的,把关闭(shutdown)这些操作把它改成归还(把上面占用的标记干掉,归还到我们的线程池里或数据库连接池)。

这样我们每次使用,都和原生的线程活或连接一样。创建一个、打开一个、关闭一个,就变成借一个,还回去。

1.1 线程池(JDK中对线程池支持的类模型)

在构建一个线程池的时候,我们要明确一个线程池中有哪些东西:

  1. Excutor: 执行者 – 顶层接口

    首先,我们需要有一个可执行的东西,所以创建了一个接口

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值