O que o JVM faz para usar o recurso multicore cpu?

Normalmente, um programa java está sendo executado com um único processo chamado "javaw" .E quando executo um único processo, só consigo obter o recurso máximo de um núcleo (de multicores). Mas quando eu executo um programa multithread em jvm, o número de núcleos usados ​​é de acordo com o número de threads que está além do que um processo pode fazer. Então alguém pode me dar algumas informações sobre como jvm lidar com o programa multithread na máquina multicore cpu?

/**
* I run this program in my machine which has 8 core cpu
* and the jre is 1.6.0_24
* How does jvm use one process to use all the cpu resources?        
*/

public class MultiCoreUseTest implements Runnable{
@Override
public void run() {

    int i;
    while(true)
         i =1;
}

public static void main(String[] args) {

    //create 8 threads
            //8 threads the usage of cpu is 100%
            // if 4 threads the usage of cpu is 50%
    for(int i = 0; i<8; i++){
        new Thread(new MultiCoreUseTest()).start();     
    }
}

}

questionAnswers(1)

yourAnswerToTheQuestion