I'm reading Ignite documentation and now I'm at the section about performance. Here is what it's written (emphasized mine):
By default, Ignite has it's main thread pool size set to 2 times the available CPU count. In most cases, keeping 2 threads per core will result in faster application performance, since there will be less context switching and CPU caches will work better.
I don't understand why is it less context switching if we have 2 threads per core? I thought if all threads are busy with some job there will be pretty much of context-switch because we cannot run jobs twice as the number of cores. Which will hurt performance.
What did they mean by that?