Co robi jvm, aby korzystać z zasobu procesora wielordzeniowego?

Zazwyczaj program java działa z jednym procesem o nazwie „javaw”. A kiedy uruchamiam pojedynczy proces, mogę uzyskać tylko maksymalny zasób jednego rdzenia (multicores). Ale gdy uruchamiam program wielowątkowy w jvm, liczba używanych rdzeni jest zgodna z liczbą wątków, które mogą wykraczać poza jeden proces. Czy więc ktoś może dać mi informacje o tym, jak jvm radzi sobie z programem wielowątkowym w wielordzeniowej maszynie 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