next up previous contents
Next: Prozesssynchronisation Up: CPU-Prozess-Scheduling (Prozessablaufplanung) Previous: Mehrstufiges Scheduling   Contents

Java Thread Scheduling

Das Thread Scheduling in der JVM erfolgt durch einen Algorithmus, der nicht genau spezifiziert ist. Der Algorithmus kann die Prioritäten berücksichtigen, die man in Java den einzelnen Threads zuordnen kann.

Folgendes Beispiel (Abbildung [*]) zeigt dieses.

Figure: Thread zählt
\begin{figure}\begin{center}
\begin{verbatim}class Thread1 extends Thread {
...
...println(getName()+'': ''+i);
}
}
}
}\end{verbatim} \end{center}\end{figure}

Ein weiterer Thread MainThread (Abbildung [*]) startet den vorherigen Thread Thread1 dreimal.

Figure: Hauptthread
\begin{figure}\begin{center}
\begin{verbatim}class Mainthread extends Thread {...
...t = new Mainthread ();
t.start();
}
}\end{verbatim} \end{center}\end{figure}

Die drei Threads werden jeweils mit unterschiedlichen Prioritäten gestartet. Die Bildschirmausgabe zeigt dann wie oft welcher Thread sich im rechnenden Zustand befindet.

Die Implementierung der JVM in der Version 1.3 unter Linux erfolgt so, dass jeweils für die Threads einzelne Prozesse gestartet werden.



Prof. Dr. Pluemicke 2003-05-10