java - 可以递增的锁存器

标签 java concurrency

有谁知道是否有执行以下操作的任何闩锁实现:

  • 有一种方法来减少锁存器的值,或者如果值为零则等待
  • 有等待锁存值为零的方法
  • 有一种方法可以将数字添加到锁存器的值中

最佳答案

您也可以使用 Phaser (java.util.concurrent.Phaser)

final Phaser phaser = new Phaser(1); // register self
while (/* some condition */) {
    phaser.register(); // Equivalent to countUp
    // do some work asynchronously, invoking
    // phaser.arriveAndDeregister() (equiv to countDown) in a finally block
}
phaser.arriveAndAwaitAdvance(); // await any async tasks to complete

我希望这会有所帮助。

关于java - 可以递增的锁存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14255019/

相关文章:

java - 意外的多线程结果

scala - Spark UDF 线程安全

java - 可将光栅写入图像-png 格式?

Java SOAP 客户端抛出异常 "Call to a member function setValue() on a non-object"

java - 为什么我们在 Struts 2 中使用PrincipalAware

ScalaTest:断言阻塞语句

azure - 在 Azure API 管理中设置并发限制

java - 以ArrayList为元素的并发队列数据结构

java - tomcat 无法显示 JSP,错误 : The requested resource is not available

java - for循环中的字符打印出来的值离值太远