gpt4 book ai didi

Java 从 for 循环中运行多个具有不同名称的线程

转载 作者:行者123 更新时间:2023-12-01 17:00:41 24 4
gpt4 key购买 nike

我试图在 for 循环中启动可变数量的线程,并希望将线程命名为 prime1、prime2、[...]。

PrimeFinderThread 类扩展自 Thread。

[...]

for (int i = 0; i <= numberThreads; i++) {
PrimeFinderThread ("prime" + i) = new PrimeFinderThread (lowerBoundary, interval);
}

[...]

我收到错误:

The left-hand side of an assignment must be a variable.

来自 ("prime"+ i)

启动X个线程并为每个线程使用单独的名称的可能解决方案是什么?

最佳答案

尝试以下操作:

Thread[] threads = new PrimeFinderThread[numberThreads];
for (int i = 0; i < numberThreads; i++) {
threads[i] = new PrimeFinderThread (lowerBoundary, interval);
threads[i].setName("prime" + i);
threads[i].start();
}

它通过setName方法设置名称,然后通过调用start启动每个线程。

但是,让 PrimeFinderThread 的构造函数采用一个额外的参数(即 name)并调用父类(super class)构造函数可能更容易。

public PrimeFinderThread (String name, int lowerBoundary, int interval) {
super(name); // instead of setName
// Do the other stuff
}

IMO,更好的方法是扩展Thread类,而是提供一个Runnable,最好使用某种 >ExecutorService - 检查例如Executors JavaDocconcurrency trail来自 Oracle 网站。

关于Java 从 for 循环中运行多个具有不同名称的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27839427/

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