为什么此代码启动同一线程N次,而不是每次启动N个线程1次?

时间:2019-05-14 19:49:42

标签: java multithreading

我想创建N个(serverAmount)线程来运行同一服务器(NotaryServer类)的N个副本。每个线程一个。

我在第一个for循环中初始化线程。

问题是当我尝试在第二个for循环中启动线程时。我查看了我的threadList线程并启动了每个线程,但是只有1个线程正在启​​动N次。

List<ServerManagerThread> threadList = new ArrayList<ServerManagerThread>();`

for(int i = 0; i < serverAmount; i++) {
    String serverName = "ServerNr" + i;
    threadList.add(new ServerManagerThread(new NotaryServer(serverName)));
}   

for(int i = 0; i < serverAmount; i++) {
    threadList.get(i).start();
}

我得到的错误是线程产生的输出都是相同的。 我应该得到这个(例如,当N = 2时):

ServerNr0 listening
ServerNr1 listening

相反,我得到这个:

ServerNr1 listening
ServerNr1 listening

0 个答案:

没有答案