/ / Thread Scheduler Registrierung? - Java, Multithreading

Thread-Scheduler-Registrierung? - Java, Multithreading

In Java tut run() Einen Thread in einem Thread-Scheduler registrieren?

Wie wäre es mit construct(),start() und register() ?

Antworten:

3 für die Antwort № 1

Registriert run () in Java einen Thread in einem Thread-Scheduler?

Nein, wenn Sie die anrufen run() Methode direkt, es wird als normale Methode aufgerufen; es läuft auf dem aktuellen Thread, nicht auf einem neuen.

Was ist mit construct (), start () und register ()

Das start Methode erstellt einen neuen Thread und im ProzessDer Thread wird beim Scheduler registriert. (Allerdings ist der Scheduler in Java ein nebulöses Konzept. Es wird vorausgesetzt, dass einer existiert, aber seine Implementierung und sein Verhalten bleiben normalerweise dem Host-Betriebssystem überlassen. Ein reines Java-Programm hat fast keine Kontrolle über die Art und Weise, wie der Thread-Scheduler tatsächlich arbeitet funktioniert.)

Es gibt keine construct() oder register() Methoden in der Thread API. Wenn Sie sich auf die beziehen Thread Konstrukteure erstellen sie nur eine Thread Objekt und NICHT der zugrunde liegende Thread, der die Arbeit erledigt. Letzteres wird erst bei erstellt start() wird genannt.


1 für die Antwort № 2

run() ist der eigentliche Code im Thread; so könnte man machen wie:

Thread childThread = new Thread() {
public void run() {
// do stuff on a new thread
}
};

(Obwohl mir gesagt wurde, dass es hässlich ist, den Thread so zu erweitern;)

Der Aufruf von run () selbst erzeugt also keinen neuen Thread. Verwenden Sie dazu start ():

childThread.start();

Also, ich denke, es gibt dem Scheduler einen neuen Thread, mit dem er sich befassen kann - aber das ist auf der Betriebssystemebene weit unten.

Ich bin nicht sicher, was du meinst construct() und register() obwohl?