Heim  >  Artikel  >  Java  >  Java-Multithreading und Timer

Java-Multithreading und Timer

高洛峰
高洛峰Original
2016-12-16 13:46:471423Durchsuche

1. Multithreading in Java:

Verwenden Sie die Klasse java.lang.Thread oder die Schnittstelle java.lang.Runnable, um Code zum Definieren, Instanziieren und Starten neuer Threads zu schreiben.

Eine Thread-Klasseninstanz ist nur ein Objekt, wie jedes andere Objekt in Java, hat Variablen und Methoden, lebt und stirbt auf dem Heap.

In Java verfügt jeder Thread über einen Aufrufstapel. Auch wenn im Programm keine neuen Threads erstellt werden, laufen die Threads weiterhin im Hintergrund.

Eine Java-Anwendung startet immer mit der main()-Methode. Die main()-Methode wird in einem Thread ausgeführt, der als Hauptthread bezeichnet wird.

Sobald ein neuer Thread erstellt wird, wird ein neuer Aufrufstapel generiert.

Threads werden im Allgemeinen in zwei Kategorien unterteilt: Benutzer-Threads und Warte-Threads.

Wenn die Ausführung aller Benutzer-Threads abgeschlossen ist, wird die JVM automatisch heruntergefahren. Der Wartethread ist jedoch nicht unabhängig von der JVM. Der Wartethread wird im Allgemeinen vom Betriebssystem oder vom Benutzer selbst erstellt.

Zwei Möglichkeiten, einen Thread zu erstellen

1. Erstellen Sie eine Unterklasse von Thread und überschreiben Sie die Fun-Methode.

2. Verwenden Sie den Parameter-enthaltenden Konstruktor von Thread, und der Parameter ist das Runnable()-Objekt.

 [java]

 //Beispiel 1: (Inherit Thread class)

Threadthread1=newThread(){

 @Override

 publicvoidrun(){

 ……//Der spezifische auszuführende Code wird weggelassen

 }

 };

 //Beispiel 2: ( Runnable-Schnittstelle implementieren)

Threadthread2=newThread(newRunnable(){

@Override

publicvoidrun(){

….. //Der Code zu ausgeführt werden wird weggelassen

 }

 });

  Die zweite Methode ist besser für objektorientiertes Denken geeignet und flexibler, daher wird die zweite Methode allgemein verwendet.

Beide Methoden müssen die Ausführungsmethode überschreiben.

2. Die beiden Klassen, die zur Implementierung der Timer-Funktion in JAVA verwendet werden, sind Timer und TimerTask. Die Timer-Klasse ist eine Klasse, die zum Ausführen von Aufgaben verwendet wird.

Der Timer verfügt über zwei Modi zum Ausführen von Aufgaben. Der am häufigsten verwendete Modus ist der Zeitplan, der Aufgaben auf zwei Arten ausführen kann: 1: In einer bestimmten Zeit (Daten), 2: nach einer festen Zeit (int Verzögerung) Beide Methoden können die Häufigkeit der Aufgabenausführung angeben.

 [java]

//Ein Beispiel für einen Timer:

publicstaticvoidmain(String[]args){

classMyTimerTaskextendsTimerTask{//Schreiben Sie eine interne Die Klasse erbt die TimerTask-Klasse, um die Funktion des Timers zu implementieren

 @Override

 publicvoidrun(){

 x=(x++)%2;

 System. out.println("bombing!!");

newTimer().schedule(newMyTimerTask(),2000+2000*x);

 }

}

System.out.println(newDate().getSeconds());

newTimer().schedule(newMyTimerTask(),2000);//Erstelle einen Timer

}

//Die Implementierung gibt hin und wieder eine Anweisung aus: und es wird unterschiedliche Intervalle für ungerade und gerade Zahlen geben.

Weitere Artikel zum Thema Ava-Multithreading und Timer finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn