gpt4 book ai didi

java - 等价于 Java 中的 await(x==0)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:14 25 4
gpt4 key购买 nike

例如,在 Pthreads 中,有可能让进程等待某个条件,例如:

<await (nr == 0 ^ nw == 0) nw++>;

有没有办法以类似的方式在 Java 中使用信号量来做到这一点?等待 nr==0 之类的条件。

最佳答案

如果是一次性事件,您可以使用 a CountDownLatch :

private final CountDownLatch xIsZeroLatch = new CountDownLatch(1);

然后您可以按如下方式使用它:

  • 在您的等待线程中:

    xIsZeroLatch.await();
  • 在其他线程中:

    x = newX();
    if (x == 0) xIsZeroLatch.countDown();

如果条件可以在 true 和 false 之间多次变化,并且每次变化都需要一个事件,您可以使用具有一次许可的 Semaphore

关于java - 等价于 Java 中的 await(x==0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14926280/

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