gpt4 book ai didi

java - 如何在java中使用循环创建多个线程

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:50 24 4
gpt4 key购买 nike

我正在尝试在 Java 中使用 for 循环创建多个线程,以便它们共享相同的变量计数器。我做错了什么,因为我希望每个线程的计数器都递增。

这是以下代码的输出:

Counter: 1
Counter: 1
Counter: 1

public static void main(String[] args) {
int numThreads = 3;
for (int i = 0; i < numThreads; i++) {
Create c = new Create();
Thread thread = new Thread(c);
thread.start();
}
}


public class Create implements Runnable {
int counter = 0;

public void run() {
counter++;
System.out.println("Counter: " + counter);
}
}

最佳答案

计数器声明为staticvolatile :

static volatile int counter = 0;

所有 3 个线程将共享它。

注意,尽管波动性会处理可见性(当一个线程更新它时 - 更改将被其他线程可见)它不会处理修改的原子性,因为你应该同步你的部分增加它,或者更好的是,使用 AtomicInteger

关于java - 如何在java中使用循环创建多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29884771/

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