Is using of parallel stream insdead of executor services in Java considered as bad practice? Why?
As you know myList.parallelStream().map(e -> ...) will use ForkJoinPool.common() under the hood. So if you will use at least two parallel streams at the same time you can face issues when:
mapfunction is blocking. But there is ForkJoinPool.ManagedBlocker as a rescue.mapfunction can be very CPU intensive which will cause other parallel streams to starve. Is there any way to set priority amongRecursiveTasks or betweenForkJoinPools?
In other hand you can create as many ForkJoinPools as you want. new ForkJoinPool(4).submit(() -> myList.parallelStream().... Is it considered performance-wise to use multiple ForkJoinPools at one JVM?
Update
Use or not parallel stream = use or not ForkJoinPool, right? I found this and this links pretty useful to asnwer the last question