Java-Threads gegen OS-Threads

Sieht aus wie ich Durcheinander mit Java-Threads/OS-Threads und Interpretiert Sprache.

Bevor ich beginne, ich verstehe, dass Green Threads sind Java-Threads, wo der Durchzug ist gesorgt durch die JVM und die gesamte Java-Prozess läuft nur als single OS Thread. Dabei auf einer multi-Prozessor-system ist es nutzlos.

Nun meine Fragen ist. Ich habe zwei Threads A und B, die Jeweils mit 100 tausend Zeilen unabhängigen code. Ich Laufe diese threads in meinem Java-Programm auf einem Multiprozessor-system. Jeder Thread erhält eine native OS-Thread LAUFEN, die laufen können, auf eine andere CPU, aber da Java interpretiert wird, diese threads benötigen, um die Interaktion mit der JVM wieder und wieder zu konvertieren, die byte-code-to-machine-Anweisungen ? Bin ich im Recht ? Wenn ja, als für kleinere Programme mit Java-Threads nicht ein großer Vorteil ?

Sobald der Hotspot kompiliert diese beiden Ausführungspfade beide so gut sein können wie native Threads ? Bin ich im Recht ?

[EDIT] : Eine Alternative Frage gestellt werden kann, angenommen, Sie haben eine einzelne Java-Thread, dessen code nicht JIT-kompiliert haben, erstellen Sie diesen Thread und start ()? Wie funktioniert der OS-Thread und JVM interagieren zu laufen, dass Bytecode ?

Dank

InformationsquelleAutor der Frage Geek | 2010-12-13

Schreibe einen Kommentar