【发布时间】:2020-08-28 07:39:30
【问题描述】:
我正在尝试从远程 Splunk 服务器执行获取日志操作。我的 CPU 有 4 个内核。我正在使用 Executor Framework,CorePoolSize 为 4。但是,只有 1 个线程正在获取日志。我应该怎么做才能让 4 个线程同时工作?
代码:
public Executor taskExecutor(){
ThreadPoolTaskExecutor executor= new ThreadPoolTaskExecutor();
executor.setCorePoolSize(Runtime.getRuntime().availableProecssors());
executor.setMaxPoolSIze(10);
executor.setQueueCapacity(100);
executor.initialize();
return executor;
}
【问题讨论】:
-
这是java吗?你是如何执行任务的?任务本身是否同步?你怎么知道只有 1 个线程在工作?
-
是的,它的 Java。我使用 CompletableFuture 进行异步操作。在 Eclipse 控制台中,我只能看到一个线程正在使用。
-
您需要包含启动/提交任务的代码。
-
其实是一个SpringBoot应用。我用过@EnableAsync。我想知道我是否为具有 4 个内核的 CPU 正确配置了线程池。
-
你检查过“availableProcessors()”返回了什么吗?
标签: java spring multithreading executorservice threadpoolexecutor