ForkJoinTask
以及
Runnable
.
private[akka] abstract class Mailbox(val messageQueue: MessageQueue)
extends ForkJoinTask[Unit]
with SystemMessageQueue
with Runnable {
// Runnable method
override final def run(): Unit = {
// ...
processMailbox()
dispatcher.registerForExecution(this, false, false)
// ...
}
// ForkJoinTask method
final override def exec(): Boolean = {
// ...
run()
// ...
}
}
但executor服务可以配置为使用
TheadPoolExecutor
(TP)而不是
ForkJoinPool
(福建)。因此,TP有可能执行
ForkJoinTask
.
这也许完全合理,但TP执行FJ任务的事实在我看来有点奇怪。这里有人能分享决策推理吗?怎么会呢
ForkJoinTask
即使可以由
工具执行器