Will each pool have their own distinct set of threads? Or is there a possibility for threads to be shared between them?
Each pool has control over its own threads -- when to create new ones, when to destroy them etc. No two ThreadPool
s will ever "see" one another's threads.
In other words: there is no "giant pool" at the JVM level from which ExecutorService
s, or ScheduledExecutorService
s or even ForkJoinPool
s would pick from. Were it the case, the maintenance cost would be prohibitive...