java:创建具有不同名称的多个线程(不使用for循环)

时间:2015-03-11 17:35:09

标签: java multithreading

我正在开发一个项目,当满足特定条件时,我必须创建一个或多个新线程。基本上我每次都在创建具有不同名称的新线程,因为我不知道在tun时间内会生成多少个线程。

示例:线程t1 =新线程(); 线程t2 =新线程();等等..  在这里,我不知道是否需要到t10或t99。

3 个答案:

答案 0 :(得分:1)

我知道你没有要求循环,但这会得到你需要的吗?

int numberOfThreads = //whatever;
 ArrayList<Thread> threadList = new ArrayList<>();
 for(int i = 0; i<numberOfThreads; i++)
 {
    Thread t = new Thread();
    threadList.add(t);
}

您可以通过索引而不是名称来调用线程,threadList.get(number);

答案 1 :(得分:1)

首先要做的事情:

java中没有动态变量。您必须在源代码中声明它们。

要解决您的标识符问题,您可以使用HashMap

Map<String, Thread> hm = new HashMap<String, Thread>();

一种为其添加线程的方法:

public void addThreadToMap(Thread t) {
    hm.put("t" + hm.size().toString(), t);       //This will add the thread with the key [t0 .... tn]
}

答案 2 :(得分:0)

您可以创建一个ArrayList并每次添加一个新的。