java - Golang 的 WaitGroup 的 Java 等价物是什么

标签 java go

Golang 有一个叫做 WaitGroup 的东西,它有点像 Java 中的 CompletionServiceCountDownLatchSemaphore 或后者的某种组合。

我不完全确定您将如何在 Java 中实现 WaitGroup。我会想象带有某种毒药消息的自定义 CompletionService 将是可行的路线(因为队列无法说明它们何时完成)但也许有更好的并发数据结构/锁?

编辑我在下面使用 Semaphore 发布了一个可能的解决方案,我认为它比使用 thread.join 更相似。

最佳答案

WaitGroup 具有 Add(delta) 方法,可在创建 WaitGroup 后调用。 CountDownLatch 不支持此功能,需要提前指定任务数。在这种情况下可以使用 JDK7 Phaser:

phaser.register = wg.Add(1)
phaser.arrive = wg.Done
phaser.await = wg.Wait

关于java - Golang 的 WaitGroup 的 Java 等价物是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29655531/

相关文章:

java - 在 JOptionPane 中对齐文本

firebase - 如何传递应用程序功能?

go - 将对象传递给其他包中的结构

go - Golang 中的结构声明

web-services - 在 Go 的网络服务器前使用 Nginx 有什么好处?

java - 生成频繁项集对的应用

java - java 中列表中表达式的最大数量为 1000

java - 为什么 JSTL 使用 ${dollarAmount} 将 double 值 99 输出为 99.0(而不是 99.00)?

java - 在 Java 的 While 循环期间替换字符串中的字符

json - Martini 中的 JSON 编码错误