Java同步原语

标签 java concurrency

我想在我的代码中使用以下类似信号量的同步原语:

class Event {
    private boolean fired = false;

    public synchronized void fire() {
        this.fired = true;
        this.notify();
    }

    public synchronized void waitFor() throws InterruptedException {
        while (!this.fired)
            wait();
        this.fired = false;
    }
}

Java 标准库(或其他流行的库)中是否存在可用于相同语义的原语?

编辑:CountDownLatch 似乎是最佳候选者,因此我将接受其中一个答案。尽管在这种情况下我不喜欢它,因为它没有提供清晰的语义并且缺乏可读性。

最佳答案

java.util.concurrent 提供高级并发。

CountDownLatch 将解决您的查询。

请通过docuementation

关于Java同步原语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32226178/

相关文章:

java - Hibernate JPA - StackOverflowException - JPQL

java - 如何创建具有更多限制类型的泛型类的子类?

mysql - 并发导致插入重复记录

Java 并发读/写

multithreading - ARM STLR 内存排序语义

java - 使用 AtomicBoolean 控制实例的状态

java - 可变大小数组的构造函数

java - 使用流删除深度元素

java - 是否可以以及如何更新 Cloud Foundry 中的 JDK

java - future 的取消方法文档