线程池使用详解(精修版)

本文详细介绍了如何使用Java创建线程池,遵循阿里巴巴开发规范,指出Executors的不足并推荐使用原生方式。线程池创建涉及核心线程数、最大线程数、线程空闲时间、阻塞队列、线程工厂和拒绝策略等关键参数。讨论了不同阻塞队列和拒绝策略的选择,并解析了线程池执行任务的顺序和线程回收机制。
摘要由CSDN通过智能技术生成

package com.com.task;

import org.springframework.scheduling.concurrent.DefaultManagedAwareThreadFactory;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class Thread_Main {
public static void main(String[] args) {
/**
* 阿里巴巴 Java开发规范 Executors容易不可控 推荐使用原生创建
* 原生创建线程池 的七个参数
* 1.核心线程数 一般是CPU的核数
* 2.最大线程数
* 3.线程的空闲时间
* 4.线程空闲时间的时间单位
* 5.阻塞队列
* 6.线程创建工厂
* 7.拒接策略*/
//常用的阻塞队列 7个
//常用的拒绝策略 4个
/**
* 线程池生效顺序
* 1.核心线程数 任
* 务先被核心线程执行要是不够
* 2.阻塞队列 多余的任务存储到队列,排队 任务过多,队列存储不下
* 3.最大线程数 线程池会创建新的线程,来处理任务 队列存放不下的任务
* 4.拒绝策略生效 当线程到达最大数,并且队列已存满,拒接策略生效
* 5.线程的空闲时间达到指定值 回收当前的线程 如果没有设置allowCoreThreadTimeOut,就会保留核心线程数
* 如果设置,都会回收
* */
//线程池类ScheduledThreadPoolExecutor类

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值