asyncMode if true, establishes local first-in-first-out
scheduling mode for forked tasks that are never joined. This
mode may be more appropriate than default locally stack-based
mode in applications in which worker threads only process
event-style asynchronous tasks.
The platform pool is currently created by DefaultExecutorFactory.createForkJoinPool() with asyncMode = false. Newly forked tasks are executed by pool threads first and execution of already scheduled tasks may get delayed. This maybe the reason why some components with light tasks create backlog large enough to trigger back-pressure.
We should try switching to asyncMode = true, which fits platform's mode of execution (FIFO instead of LIFO), and evaluate its effect.
Solution
Create the platform ForkJoinPool with asyncMode = true.
Problem
ForkJoinPool.java:
The platform pool is currently created by
DefaultExecutorFactory.createForkJoinPool()
withasyncMode = false
. Newly forked tasks are executed by pool threads first and execution of already scheduled tasks may get delayed. This maybe the reason why some components with light tasks create backlog large enough to trigger back-pressure.We should try switching to
asyncMode = true
, which fits platform's mode of execution (FIFO instead of LIFO), and evaluate its effect.Solution
Create the platform ForkJoinPool with
asyncMode = true
.Alternatives
No response