解释Akka线程池执行器配置参数

Maa*_*mon 7 scala akka

据我所知,fork-join-executor是在创建actor系统时提供non时的默认调度程序.有人可以解释如下:

fork-join-executor {
        # Min number of threads to cap factor-based parallelism number to
        parallelism-min = 8

        # The parallelism factor is used to determine thread pool size using the
        # following formula: ceil(available processors * factor). Resulting size
        # is then bounded by the parallelism-min and parallelism-max values.
        parallelism-factor = 3.0

        # Max number of threads to cap factor-based parallelism number to
        parallelism-max = 64

        # Setting to "FIFO" to use queue like peeking mode which "poll" or "LIFO" to use stack
        # like peeking mode which "pop".
        task-peeking-mode = "FIFO"
      }
Run Code Online (Sandbox Code Playgroud)

虽然我理解每个单词,但我不理解这里解释的完整语义.

  • 什么意思是ceil?in ceil(可用处理器*因子)
  • 什么意味着基于因子的并行性?

有人可以用英语向我解释上面的配置意味着什么.通过阅读这里和那里的许多帖子,我有点理解,默认情况下,akka会设置一个threadPoolexecutor,为每个核心分配和线程.因此,如果你有2个两个核心处理器,你最终将得到4个线程.无论如何,这是多少平行.在它之上它是并发的但不完全严格地说并行.虽然这是另一个问题.

因此,如果有人可以根据处理器和核心来解释上述配置,并且结果数量的线程包含2个机器示例(根据其处理器配置),这将是很好的.

Kon*_*ski 5

Viktor Klang在 akka-user 上对这个问题进行了深入回答,本质上:我们强烈建议阅读JDK 文档中的 ForkJoinPool 文档,其中深入介绍了这些问题。

  • 不,抱怨比做些什么更容易。 (12认同)
  • 你不应该链接到SO之外的答案,这个网站本身就是规范的。 (2认同)