据javadoc
,在Phaser
课堂上,
移相器可以分层(即,以树结构构建)以减少争用。可以改为设置具有大量参与方的移相器,否则这些移相器将经历沉重的同步争用成本,以便子移相器组共享一个共同的父级。这可能会大大增加吞吐量,即使它会产生更大的每次操作开销。
谁能澄清一下这个说法,这让我有点困惑。
据javadoc
,在Phaser
课堂上,
移相器可以分层(即,以树结构构建)以减少争用。可以改为设置具有大量参与方的移相器,否则这些移相器将经历沉重的同步争用成本,以便子移相器组共享一个共同的父级。这可能会大大增加吞吐量,即使它会产生更大的每次操作开销。
谁能澄清一下这个说法,这让我有点困惑。
平衡树在递归分解程序中效果很好。Java7 中的 Fork/Join 框架就是一个例子。我想 tiered 被添加到 Phasers 作为使用这个框架的另一种方式,但代价高昂。当一个阶段必须等待到达时,框架会创建另一个线程来代替它。对于大量的服务员来说,这可能是一场灾难。您可以通过下载我两年前写的这篇文章中的示例软件来查看它自己的工作原理。