gpt4 book ai didi

java - 多线程java中的重复输出

转载 作者:行者123 更新时间:2023-11-30 03:18:38 25 4
gpt4 key购买 nike

我是多线程编程新手。该代码没有达到我想要的效果:

public class Test {
static int i;
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(10);
for(i = 0; i<10 ;i++) {
executor.execute(new Runnable() {
public void run () {
System.out.println(i);
}
});
}
}
}

输出:24342668910

我希望它输出类似 0,1,2,3,4,5,6,7,8,9 的内容,无论有没有顺序。我的问题是我可以做什么来获得预期的输出,以及如何使它们按顺序排列。

提前致谢

最佳答案

不要将静态i传递给run:

public class Test {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(10);
for(int i = 0; i < 10 ;i++){
int x = i;
executor.execute(new Runnable(){
public void run (){
System.out.println(x);
}
});
}
}
}

关于java - 多线程java中的重复输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31898636/

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