Hello Shai
I use completablefuture to create 20000 tasks, not threads. They get executed in a forkjoinpool in one thread. It does not matter for this post so I do not explore the problem with the performance. Anyway with 16 cpus there is a clear performance gain because of the concurrency.