gpt4 book ai didi

Java 多线程无法正常工作

转载 作者:行者123 更新时间:2023-11-29 08:10:58 25 4
gpt4 key购买 nike

我正在使用具有 4 个线程的 Executor

Executor exec = Executors.newFixedThreadPool(this.numOfThreads);
Runnable requestHandler = new Runnable() {
@Override
public void run() {
try {
getImageForURL(spURL, 0);
} catch (IOException ex) {
} catch (Exception ex) {
}
}
};
exec.execute(requestHandler);

getImageForURL 中,我正在打印线程的名称,输出如下所示。输出看起来不正确,或者这是它应该看起来的样子?

name=pool-1-thread-1
name=pool-2-thread-1
name=pool-3-thread-1
name=pool-4-thread-1
name=pool-5-thread-1
name=pool-6-thread-1
name=pool-7-thread-1
name=pool-8-thread-1
name=pool-9-thread-1
name=pool-10-thread-1
name=pool-11-thread-1
name=pool-12-thread-1
name=pool-13-thread-1
name=pool-14-thread-1

最佳答案

您每次都在创建一个新池(通过重复调用 newFixedThreadPool)。您可能只想创建池一次(当您启动程序时),并向其提交多个 requestHandler

输出应该类似于:

name=pool-1-thread-1
name=pool-1-thread-1
name=pool-1-thread-2
name=pool-1-thread-1
name=pool-1-thread-1
name=pool-1-thread-2

如果池被充分利用,线程数将增加到 4。

关于Java 多线程无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8162176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com