使用jdk自带的线程池。加载10个线程。
在开发中使用线程,经常不经意间就new Thread()一个出来,然后发现,这样做不是很好,特别是很多线程同时处理的时候,会出现CPU被用光导致机器假死,线程运行完成自动销毁后,又复活的情况。
所以在这个时候,就需要使用到线程池。。
线程池就是类似数据库连接池,限定一个规定大小的连接数(线程数),然后,需要处理的线程直接调用连接池执行线程。当插入的线程个数超过线程池个数的时候,就会排队等待。。。
线程池不需要到别的地方找,JDK就自带有一个挺不错的池:java.util.concurrent.ExecutorService。
下面是个线程池工具类。。
1 package com.iafclub.jrrestServer.thread; 2 3 import java.util.concurrent.ExecutorService; 4 import java.util.concurrent.Executors; 5 6 /**线程池 7 * 8 * @author chenweixian 9 * 10 */ 11 public class ThreadPool{ 12 private static ThreadPool threadPool; 13 // 线程池 14 private ExecutorService executorService = null; 15 16 private ThreadPool(){ 17 // 线程池加载10个线程 18 executorService = Executors.newFixedThreadPool(10); 19 } 20 21 public static synchronized ThreadPool getInstance(){ 22 if (threadPool == null){ 23 threadPool = new ThreadPool(); 24 } 25 return threadPool; 26 } 27 28 /**执行线程 29 * 30 * @param thread 31 */ 32 public void threadDo(Thread thread){ 33 executorService.submit(thread); 34 } 35 36 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?