当前位置:首页 » 云服务器 » 服务器如何查看线程池未关闭

服务器如何查看线程池未关闭

发布时间: 2024-09-30 07:13:51

‘壹’ 线程池七大核心参数

线程池七大核心参数如下所示:

一、corePoolSize 线程池核心线程大小

线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会被销毁,除非设置了allowCoreThreadTimeOut。这里的最小线程数量即是corePoolSize。任务提交到线程池后,首先会检查当前线程数是否达到了corePoolSize,如果没有达到的话,则会创建一个新线程来处理这个任务。

二、maximumPoolSize 线程池最大线程数量

当前线程数达到corePoolSize后,如果继续有任务被提交到线程池,会将任务缓存到工作队列(后面会介绍)中。如果队列也已满,则会去创建一个新线程来出来这个处理。线程池不会无限制的去创建新线程,它会有一个最大线程数量的限制,这个数量即由maximunPoolSize指定。

三、keepAliveTime 空闲线程存活时间

一个线程如果处于空闲状态,并且当前的线程数量大于corePoolSize,那么在指定时间后,这个空闲线程会被销毁,这里的指定时间由keepAliveTime来设定。

四、unit 空闲线程存活时间单位

空闲线程存活时间单位是keepAliveTime的计量单位。

五、workQueue 工作队列

新任务被提交后,会先进入到此工作队列中,任务调度时再从队列中取出任务。

六、threadFactory 线程工厂

创建一个新线程时使用的工厂,可以用来设定线程名、是否为daemon线程等等。

七、handler 拒绝策略

当工作队列中的任务已到达最大限制,并且线程池中的线程数量也达到最大限制,这时如果有新任务提交进来,该如何处理呢。这里的拒绝策略,就是解决这个问题的。

线程池的优势

1、线程和任务分离,提升线程重用性;

2、控制线程并发数量,降低服务器压力,统一管理所有线程;

3、提升系统响应速度,假如创建线程用的时间为T1,执行任务用的时间为T2,销毁线程用的时间为T3,那么使用线程池就免去了T1和T3的时间。

‘贰’ mysql数据库线程池问题,为什么总是报错Cannot create PoolableConnectionFactory

一般这种情况可能的原因有这几种:
1. 可能连接超过mysql设置的上限(你的应该没超)
2. 程序问题,建立了连接不关闭(这个有可能,看看你的session)
3. 在没有使用连接池的情况下,每次都建立一个新的连接到数据库(即使每次操作完毕都及时准确的close了),但是由于可能建立到数据库连接的频率很高(比如在for循环里),那么会迅速建立大量的tcp连接到mysql的指定端口,OS在关闭tcp连接是有一定的延迟的,也是有一定数量限制的,所以就会出现无法连接的情况(connection refused)。
-------------------------------------
我个人感觉设置最大连接数可能用处不大,因为默认的是100,你说刚10个就出问题~所以我觉得可能还是和系统有关系,因为你说刷新的不频繁就不会报错~
不过你到可以先试试看~万一能行更好不是~
还有啊,你可以找别的机器试验下,在别人的电脑上做下测试~

热点内容
盘58解压码 发布:2024-09-30 09:17:59 浏览:774
android异步加载网络图片 发布:2024-09-30 09:13:04 浏览:927
解压捏耳朵 发布:2024-09-30 09:13:03 浏览:411
txt文档编译 发布:2024-09-30 09:00:47 浏览:865
添加国际网络服务器地址 发布:2024-09-30 08:44:14 浏览:717
域名交易源码 发布:2024-09-30 08:23:29 浏览:687
未兼容安卓什么意思 发布:2024-09-30 08:23:28 浏览:861
帮忙峰脚本 发布:2024-09-30 07:58:36 浏览:195
android自动化测试脚本 发布:2024-09-30 07:32:51 浏览:509
服务器如何查看线程池未关闭 发布:2024-09-30 07:13:51 浏览:415