java线程池
大神文章:https://www.jianshu.com/p/50fffbf21b39 ;
总结:
为了提高并行处理能力,或者想异步处理问题,可以使用线程池;
线程池减少了线程的创建,但是原先创建的线程会被新加入的任务重新赋值线程变量;
示例:
总结:
为了提高并行处理能力,或者想异步处理问题,可以使用线程池;
线程池减少了线程的创建,但是原先创建的线程会被新加入的任务重新赋值线程变量;
示例:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
///////添加任务
///////添加任务
private static ExecutorService rnrThreadPool = new ThreadPoolExecutor(2, 100,
60L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(20), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
public static void main(String[] args) {
for(int i= 0; i< 100; i++) {
if(i<2) {
rnrThreadPool.submit(new RnrCallbackThread2(""+i, false));
}else{
rnrThreadPool.submit(new RnrCallbackThread2(""+i, true));
}
}
}
////////任务体
////////任务体
package com.svw.mos.mno.vo.thread;
import java.util.Map;
import java.util.concurrent.Callable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 线程处理如下任务: 1,同步状态到核心层,2,获取基础厂包 3,查车型,设置车型 4,到核心基础场包下单
*/
public class RnrCallbackThread2 implements Callable<Map<String, String>> {
private static final Logger LOGGER = LoggerFactory.getLogger(RnrCallbackThread2.class);
private String reqId;
private boolean isSuccessRnr;
public RnrCallbackThread2(String reqId, boolean isSuccessRnr) {
this.reqId = reqId;
this.isSuccessRnr = isSuccessRnr;
}
@Override
public Map<String, String> call() throws Exception {
Thread.sleep(2000l);
LOGGER.info("threadName:{},reqId:{},issuccess:{}", Thread.currentThread().getName(), reqId, isSuccessRnr);
return null;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App