【MapSheep】
[好记性不如烂笔头]
posts - 228,comments - 15,views - 17万
  1. Java并发
    • 对线程,对项目的一种优化
  2. 什么是线程池?
    • 池化思想:线程池、字符串常量值、数据库连接池。
  3. 使用线程池的步骤
    • 手动创建线程池对象
    • 执行任务
    • 执行完毕,释放线程对象
  4. 线程池优点
    • 优:提高线程的利用率,提高程序的响应速度,便于统一管理线程对象,可以控制最大的并发数。
      • 通过设置线程池的参数,控制线程池的容量,进而控制系统的最大并发量。
  5. 画图解释
    • 系统层面解释

    • 举个生活中的例子解释 ----》银行办理业务。

  6. 代码展示实现。

import org.junit.Test;
import java.util.concurrent.*;
public class ThreadPoolTest {
@Test
public void ThreadPool() {
//1、JUC工具包给我们提供了这样的一个类, 通过这个类, 可以直接创建线程池对象
//2、其中一共有7个参数,①核心线程池数,②最大线程数,③存活时间 多长时间没有接到任务, 就可以下班回家了,④时间单位(秒),⑤等待队列,⑥线程工厂,⑦拒绝策略(直接抛异常的方式)
ExecutorService executorService = new ThreadPoolExecutor(3, 5, 1L, TimeUnit.SECONDS, new ArrayBlockingQueue<>(3), Executors.defaultThreadFactory());
//3、接待客户,i< 客户人数
for (int i = 0; i < 8; i++) {
//3.1、从线程池取线程对象
executorService.execute(() -> {
System.out.println(Thread.currentThread().getName() + " , 这个人在办理业务");
});
}
//4、关掉线程池
executorService.shutdown();
//5、来第9个会报错, 抛异常, 默认采用拒绝策略
}
}
posted on   (Play)  阅读(39)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2020-08-04 JRebel激活破解完美解决方式

点击右上角即可分享
微信分享提示