If a thread is used, even a 12 CPU machine will effectively a single CPU machine, as all the threads of a process run on the same CPU. How do I make a Java process utilize the CPU to the fullest? Can I do some system programming like C language?
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.