AW: Executors enhancement

ecki at zusammenkunft.net ecki at zusammenkunft.net
Tue Aug 9 17:04:16 UTC 2016


This is nice in theory but has a number of drawbacks. First of all the common pool is not very easy to configure. It takes the available CPUs and if you run more than one VM you overcommit. Secondly different strategies to deal with longrunning or blocked jobs, with priority inheritance, with finegrained concurrency (you don't want to block all threads with some ill behaved tasks and therefore block all paralllel streams.

So it is a good idea to find a good shared default, but an API quite seldomly can isolate itself and the users about those aspects. So always allow to provide an alternate Executor. This also helps with thread naming, thread context, interceptors and error handlers.

Also, Once you have file or network or database jobs your task parallelity is not related with system CPUs anymore (and the runtimes become so unpredictable that it especially hurts parallelStream and and forkjoin users

Gruss
Bernd
-- 
http://bernd.eckenfels.net
>From Win 10 Mobile

Von: Christian Schulte


More information about the core-libs-dev mailing list