JAVA架构之线程池是怎样工作的?

java.util.concurrent包中我们能找到线程池的定义,其中ThreadPoolExecutor是我们线程池核心类,首先看看线程池类的主要参数有哪些。

corePoolSize:线程池的核心大小,也可以理解为最小的线程池大小。

maximumPoolSize:最大线程池大小。

keepAliveTime:空余线程存活时间,指的是超过corePoolSize的空余线程达到多长时间才进行销毁。

unit:销毁时间单位。

workQueue:存储等待执行线程的工作队列。

threadFactory:创建线程的工厂,一般用默认即可。

handler:拒绝策略,当工作队列、线程池全已满时如何拒绝新任务,默认抛出异常。

线程池工作流程

1、如果线程池中的线程小于corePoolSize时就会创建新线程直接执行任务。

2、如果线程池中的线程大于corePoolSize时就会暂时把任务存储到工作队列workQueue中等待执行。

3、如果工作队列workQueue也满时:当线程数小于最大线程池数maximumPoolSize时就会创建新线程来处理,而线程数大于等于最大线程池数maximumPoolSize时就会执行拒绝策略。

通俗易懂的给你解释一下,池塘里有很多鱼,我们捞一条上来把玩一番,把玩一段时间后放回池塘里去。这就是线程池的工作原理,只不过这个池塘里放的不是鱼,是一个个线程对象,用到一个就拿一个,用完放回池塘内,而这个池塘在计算机内就是对应在软件的内存中了。

ThreadPool工作原理任务先去核心线程池,如果核心线程池没有则存入到Q中;Q满了去启新的线程(启新线程时会全局锁),不能启的话就返回错误需要多了解些,参数配置和使用结合。

9700k提升性能方法?

以下是一些提升Intel Core i7-9700K性能的方法:
1. 安装最新的驱动程序:确保你的操作系统和所有相关硬件都安装了最新的驱动程序,包括显卡、主板和其他外围设备。
2. 超频:如果你有足够的散热系统和相应的硬件,可以尝试将处理器超频以提高性能。超频应该谨慎进行,确保你有足够的散热和稳定性测试。
3. 内存优化:确保使用的内存是高速的,并且你的系统正常分配内存。如果可能的话,可以考虑增加内存容量。
4. 硬盘升级:使用SSD硬盘作为系统启动盘和应用程序安装盘,可以大大提升系统的整体性能和响应速度。
5. 温度控制:确保CPU温度在合理的范围内,使用高效的散热解决方案,如水冷或风冷。
6. 关闭不必要的后台进程和程序:通过关掉不需要的后台进程和程序,可以释放系统资源和提高性能。
7. 驱动电源管理:在电源选项中将性能模式设置为高性能,以确保CPU在最大频率下运行。
8. 更新BIOS:确保你的主板固件是最新版本,以获得更好的兼容性和性能。
9. 清理系统垃圾文件:使用磁盘清理工具,删除系统中不需要的临时文件和垃圾文件,以提高系统的整体性能。
请记住,在进行任何硬件或软件更改之前,确保备份你的数据并了解你所做的更改可能带来的风险。