How threads map onto processors is operating-system and JVM-implementation dependent, but on Intel architectures (both Linux and Windows machines) threads are distributed across all processors -- so your basic thesis is incorrect. If you've got an OS/JVM combination that behaves the way you suggest, then
you should look into running on a better platform.