java - Phaser 类别和分层

标签 java multithreading phaser

根据 javadocPhaser类,

Phasers may be tiered (i.e., constructed in tree structures) to reduce contention. Phasers with large numbers of parties that would otherwise experience heavy synchronization contention costs may instead be set up so that groups of sub-phasers share a common parent. This may greatly increase throughput even though it incurs greater per-operation overhead.

有人能澄清一下这个说法吗,这让我有点困惑。

最佳答案

平衡树在递归分解程序中效果很好。 Java7 中的 Fork/Join 框架就是一个例子。我想将分层添加到 Phasers 中是作为使用该框架的另一种方式,但代价高昂。当一个阶段必须等待到达时,框架会创建另一个线程来取代它。对于大量服务员来说,这可能是一场灾难。您可以通过从 this 下载示例软件来亲自查看它的工作原理。我两年前写的文章。

关于java - Phaser 类别和分层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16836919/

相关文章:

java - 类是否必须位于同一继承树上才能具有 Has-A 关系

java - 来自 kafka 流的 Spark 应用程序需要很长时间才能产生推荐

java - Java中的生产者消费者问题

java - 使用和重用 Phaser 而不是 join()

java - 将线程注册到 Phaser

java - 如何通过特定索引在树形图中添加值和键

java - 如何从 Class[_] 对象中获取二进制数据?

multithreading - 在Linux中的内核线程之间进行通信

c# - 在 .net 中同步特定线程操作

阶段终止后的 java.util.concurrent.Phaser 回调