It will be better "This instance of a strategy can be used just by one executor. Many strategies can share the same thread-pool." What you think?

ok, the AbstractExecutor will just come. It implements our JUnit interface `RunnerScheduler` which we need to pass to `Runner#setScheduler()`. 

So the constructor `AbstractExecutor(SchedulingStrategy strategy)` takes this strategy and schedules the runner's children via the strategy. 

But if you want to schedule these children in a common (infinite) thread pool across all runners, there has to be some kind of mechanism which controls when the individual runner has finished or needs to be shutdown.

In `AbstractExecutor` has to be also a mechanism for thread-pool with limited capacity which prevents from threads exhaustion.
This happened in real ParallelComputer that the parallel classes fast consumed all threads from the pool, and there was no additional thread which could execute any method -the Suite never finished. Therefore in the old pull req #523, I introduced a balancer which guaranteed at least one thread for methods.
All worked perfectly with that balancer.