使用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 }
复制代码

 

posted on   陈惟鲜的博客  阅读(453)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示