为什么要用线程池?简述对线程池的理解。

简介: 为什么要用线程池?简述对线程池的理解。

线程和数据库连接这些资源都是非常宝贵的资源。那么每次需要的时候创建,不需要的时候销毁,是非常浪费资源的。那么我们就可以使用缓存的策略,也就是使用线程池。

线程池提供了一种限制和管理资源(包括执行一个任务)。每个线程池还可以维护一些基本统计信息,例如已完成任务的数量。

使用线程池的好处:

一、降低资源消耗。 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。

二、提高响应速度。 当任务到达时,任务可以不需要等到线程创建就能立即执行。

三、提高线程的可管理性。 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

// 创建线程池
 ExecutorService threadPool = Executors.newFixedThreadPool(10);
 while(true) {
    threadPool.execute(new Runnable() { // 提交多个线程任务,并执行
    @Override
    public void run() {
       System.out.println(Thread.currentThread().getName() + " is running ..");
       try {
          Thread.sleep(3000);
       } catch (InterruptedException e) {
          e.printStackTrace();
       }
    }
 });
 }
}
相关文章
|
1月前
|
Java C#
C#学习系列相关之多线程(五)----线程池ThreadPool用法
C#学习系列相关之多线程(五)----线程池ThreadPool用法
|
1月前
|
Java
线程池中的空余线程是如何被回收的
线程池中的空余线程是如何被回收的
32 1
|
1月前
|
存储 算法 Java
【C/C++ 线程池设计思路】 深入探索线程池设计:任务历史记录的高效管理策略
【C/C++ 线程池设计思路】 深入探索线程池设计:任务历史记录的高效管理策略
87 0
|
5天前
|
安全 算法 Java
JavaSE&多线程&线程池
JavaSE&多线程&线程池
127 7
|
1月前
|
Java 测试技术 Python
Python开启线程和线程池的方法
Python开启线程和线程池的方法
18 0
Python开启线程和线程池的方法
|
1月前
|
安全 Java 调度
【C/C++ 线程池设计思路 】设计与实现支持优先级任务的C++线程池 简要介绍
【C/C++ 线程池设计思路 】设计与实现支持优先级任务的C++线程池 简要介绍
46 2
|
1月前
|
负载均衡 Java 数据处理
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用(三)
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用
56 2
|
1月前
|
存储 监控 Java
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用(二)
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用
45 1
|
1月前
|
负载均衡 安全 Java
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用(一)
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用
59 2
|
1月前
|
Java easyexcel 应用服务中间件
【二十五】springboot使用EasyExcel和线程池实现多线程导入Excel数据
【二十五】springboot使用EasyExcel和线程池实现多线程导入Excel数据
225 0