线程池有哪几个重要参数?

上周 我的朋友询问线程池配置。

核心线程数(corepoolsize) 最小线程数。
不主动也是不主动。
不要擦除。

最大线程数(maxpool size) 可以打开的最大线程数。
当队列已满时,将打开一个新线程。

空闲线程生存时间(keepAliveTime) 不管你闲置多久,都是没有用的。
当超过核心数量时会发生超时。

时间单位(Unit) KeepAliveTime 使用什么单位计算?秒和毫秒。

任务队列(Task Queue) 作业排队的地方。
有限和无限之间有很大的区别。

螺纹工厂(螺纹工厂) 螺纹制造工厂。
更改名称和优先级。

拒绝政策(处理程序) 如果队列满了,还有任务到达怎么办?抛出异常?把它扔掉?自己执行吗?
仅此而已。

线程池七大参数

线程核心数是保持活动的线程数。
这些线程如果空闲则不会死亡。
除非设置了超时。

最大线程数是上限。
当队列已满时,将添加线程。
但不会超过这个数字。

非活动线程超时并关闭。
这样可以节省资源。
单位是时间。

队列存储未完成的工作。
主线程正忙并排队。

线程工厂创建线程。
您可以更改名称和优先级。

废物政策发展呈爆炸式增长。
队列满了,线程也满了。

AbortPolicy直接爆炸。
CallerRunsPolicy 自行完成此操作。
DiscardPolicy直接删除。
DiscardOldestPolicy 会丢弃旧的策略。

你自己看看。

创建线程池的几个核心构造参数

Java线程池主要参数:
1 .核心线程数:corePoolSize,最小线程数,不足时创建新线程。
2 、最大线程数:maximPoolSize,最大线程数,超过corePoolSize时创建。
3 、空闲生存时间:keepAliveTime、空闲线程生存时间、超时回收。
4 、任务队列:workQueue,存放待处理的任务,如ArrayBlockingQueue或LinkedBlockingQueue。
5 . Thread Factory:threadFactory,创建自定义线程。
6 .拒绝策略:handler,处理完整的任务,如AbortPolicy或CallerRunsPolicy。

项目经验:某电商系统,最大线程池2 00,核心5 0,处理急单,效果不错。

自己掂量一下。

线程池的7大参数是什么

线程池核心数为基准,根据工作负载进行调整。
最大线程数不要设置得太高,以免资源耗尽。
空闲时间的长短由任务的性质决定,不宜太长。
选择合适的队列类型,ArrayBlockingQueue 更安全。
自定义线程工厂,名称和优先级一定要合理。
CallerRunsPolicy拒绝策略首先是为了减少冲突。