概述
在多线程执行任务时,可以使用线程池执行任务。
相关代码如下:
public static void main(String[] args) {
ThreadPoolExecutor executor=null;
try{
executor = new ThreadPoolExecutor(2, 3, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(8));
// 提交任务到线程池
for (int i = 0; i < 11; i++) {
executor.execute(() -> {
try {
Thread.sleep(1000); // 模拟任务执行时间
System.out.println("任务 " + Thread.currentThread().getId() + " 执行完成...");
} catch (InterruptedException e) {
e.printStackTrace();
}
});
}
}
catch (Exception ex){
ex.printStackTrace();
}
finally {
executor.shutdown();
}
}
这里可以看到线程池的
1.核心线程数
2.最大线程数
3.队列大小
我们可以测试一次最大可以提交的线程数为
最大线程数 + 队列大小。
如果提交的任务数大于这个数量,那么会抛出拒绝异常。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2010-11-26 C#扩展方法(转贴)
2010-11-26 直接构建SOAP包调用WEB SERVICE的方法