¿Qué hace jvm para usar el recurso de CPU de multinúcleo?

Por lo general, un programa java se ejecuta con un solo proceso llamado "javaw". Y cuando ejecuto un solo proceso, solo puedo obtener el máximo recurso de un núcleo (de múltiples núcleos). Pero cuando ejecuto un programa de multiproceso en jvm, el número de núcleos que utiliza es de acuerdo con el número de subprocesos que está más allá de lo que un proceso puede hacer. Entonces, ¿alguien puede darme algo de información sobre cómo jvm trata el programa multihilo en una máquina cpu multinúcleo?

/**
* 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();     
    }
}

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta