在for循环中创建线程

时间:2015-12-26 23:59:50

标签: java multithreading for-loop

我目前有以下代码:

String [] names = {"Fred","Perry","Dave","Tom"};
for (String s: names) {           
Threads greetings = new Threads(s); 
}

这样做很好 - 但我正在做的是将Fred“,”Perry“,”Dave“,”Tom“分配到问候语中。

我想做的是以下

greetings0 = Tom
greetings1 = Perry
greetings2 = Dave
greetings3 = Tom

这意味着我以后可以运行greetings.start(); greetings1.start()等同时在自己的线程中。

1 个答案:

答案 0 :(得分:1)

您需要一个Thread对象列表,每个对象都具有指定的名称。您正在尝试创建不可能的动态变量名称。以下是如何遍历名称并将每个命名的Thread添加到List。

我希望这就是你要找的东西。你的问题描述有点不清楚你想要什么问候,问候1,问候2,问候3。

    List<Thread> threads = new ArrayList<>();
    String [] names = {"Fred","Perry","Dave","Tom"};
    for (String s : names){           
        threads.add(new Thread(s));
    }

编辑:既然你说你只会有4个问候,那么你可以这样做:

Thread greeting = new Thread("Fred");
Thread greeting1 = new Thread("Perry");
Thread greeting2 = new Thread("Dave");
Thread greeting3 = new Thread("Tom");

如果您因为某些原因想将它们保留在列表中,也可以这样做:

List<Thread> threads = new ArrayList<>();
String[] names = { "Fred", "Perry", "Dave", "Tom" };
for(String s : names)
{
    threads.add(new Thread(s));
}
Thread greeting = threads.get(0);
Thread greeting1 = threads.get(1);
Thread greeting2 = threads.get(2);
Thread greeting3 = threads.get(3);