gpt4 book ai didi

java - 在 Java 中同步人群(第 2 部分)

转载 作者:行者123 更新时间:2023-12-01 13:10:24 24 4
gpt4 key购买 nike

这个问题与我刚刚发布的另一个问题类似(并得到了回答)。所以问题的表述是一样的:“我正在编写一个演示程序来解释如何在 Java 中调节一群线程的并发性,但结果并不符合我的预期。”这次我想使用锁,代码如下:

public class Parcount extends Thread {
private static int N=1000;
private static int x=0;
private final ReentrantLock l = new ReentrantLock();
public static void main(String[] args)
throws InterruptedException {
Thread[] t = new Thread[N];
int i;
for ( i=N-1; i>=0; i-- ) {
t[i]=new Parcount();
t[i].start();
}
for ( i=N-1; i>=0; i-- ) t[i].join();
System.out.println(x);
}
public void run() { l.lock(); x++; l.unlock(); }
}

创建了 1000 个线程,并且所有线程都希望增加 x。最终的打印输出应该是 1000,但事实并非如此:一些增量丢失了。代码看起来很简单,但我可能错过了一些东西:-/

谢谢...

最佳答案

每个线程都有一把锁,每个线程都有自己的锁。您希望为所有线程提供一个锁以获得正确的同步。

关于java - 在 Java 中同步人群(第 2 部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22914548/

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