Was macht JVM, um eine Multicore-CPU-Ressource zu verwenden?

Normalerweise wird ein Java-Programm mit einem einzelnen Prozess namens "javaw" ausgeführt. Wenn ich einen einzelnen Prozess ausführe, kann ich nur die maximale Ressource eines Kerns (von Multicores) abrufen. Wenn ich jedoch ein Multithread-Programm in jvm ausführe, richtet sich die Anzahl der verwendeten Kerne nach der Anzahl der Threads, die über einen Prozess hinausgehen können. Kann mir jemand Informationen darüber geben, wie JVM mit Multithread-Programmen in Multicore-CPU-Maschinen umgeht?

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

}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage