美文网首页
浅谈线程池

浅谈线程池

作者: ButICare_b72d | 来源:发表于2023-02-22 23:41 被阅读0次

一、创建一个线程池

corePoolSize:核心线程数——最小空闲线程数(这很重要)

maximumPoolSize:最大线程数——核心线程+非核心线程数了

keepAliveTime:空闲线程等待新线程加入间隔时间

unit:空闲线程等待新线程加入间隔时间单位

workQueue:等待执行的线程队列

threadFactory:用于创建新线程的工厂类,可以用于自定义线程名称

handler:用于执行拒绝策略

二、线程池的基本使用

2.1示例代码

import java.util.concurrent.*;

import java.util.concurrent.atomic.AtomicInteger;

public class Main {

public static void main(String[]args) {

/**

* 业务需求

* 你在网上同时约了20个女神奔现

* 你忙不过来找了一个兄弟陪你一起

* 约了2个贵宾室2个普通包间(只能在贵宾室或包间内聊天)

* 酒店的大厅有8个座位

* 打算每个女神聊三秒(真男人系列)

* 请开始你的表演

*/

Executor executor = new ThreadPoolExecutor(2, 4, 0, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(8), new ThreadFactory() {

AtomicInteger chatNum = new AtomicInteger(0);

@Override

public ThreadnewThread(Runnable r) {

return new Thread(r, "聊天室" + chatNum.getAndIncrement());

}

}, new RejectedExecutionHandler(){

@Override

public void rejectedExecution(Runnabler, ThreadPoolExecutor executor) {

System.out.println("女神,不好意思,贵宾室和包间都挤满了!!!");

}

});

for (int i = 0; i < 20; i++) {

executor.execute(() -> {

try {

System.out.println("我在" + Thread.currentThread().getName() + "和女神聊3秒钟的天");

Thread.sleep(3000);

} catch(InterruptedException e) {

throw new RuntimeException(e);

}

});

}

}

}

2.2执行结果

2.3执行过程分析图

三、其余四种线程池(不推荐使用)

预知后事如何,请听下回分解

原文链接:https://blog.csdn.net/qq_24679971/article/details/129192470

相关文章

  • 浅谈线程池

    前言1. 简介2. 为什么要使用线程池3. 线程池使用方式4. Executors创建线程池 3.1. newC...

  • 浅谈线程,多线程,线程池

    什么是线程, 提到线程就要说一下进程, 进程: 进程就是正在执行的程序,(任务管理器) 线程: 是程序执行的一条...

  • Android线程池浅谈

    一.概念浅谈   线程池也就是装线程的池子,它相比于直接创建线程的好处就是在于它能减少在创建和销毁线程上所花的时间...

  • 浅谈java线程池

    线程池有啥好处 降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度:当任务到达时,...

  • java线程池

    线程VS线程池 普通线程使用 创建线程池 执行任务 执行完毕,释放线程对象 线程池 创建线程池 拿线程池线程去执行...

  • JUC(二) | 线程池浅谈

    前面简单学习了JUC同步辅助类,今天一起走进线程池的美妙新世界。 一、从新建线程池谈起 类的区别Executor是...

  • 浅谈Java线程池ThreadPoolExecutor

    1.线程的概念: (1) 线程是程序执行最小单元; (2)线程由线程ID、当前指令指针、寄存器集合和堆栈组成; (...

  • 浅谈Java线程池原理

    多线程可并发处理多个任务,提高计算机资源的利用率和工作效率,但不能来一个任务就开一个线程处理,因为创建、切换、销毁...

  • java----线程池

    什么是线程池 为什么要使用线程池 线程池的处理逻辑 如何使用线程池 如何合理配置线程池的大小 结语 什么是线程池 ...

  • Java线程池的使用

    线程类型: 固定线程 cached线程 定时线程 固定线程池使用 cache线程池使用 定时调度线程池使用

网友评论

      本文标题:浅谈线程池

      本文链接:https://www.haomeiwen.com/subject/yjtzkdtx.html