Heim >Java >javaLernprogramm >Java-Thread-Status und Analyse gängiger Methoden sowie Beispiele

Java-Thread-Status und Analyse gängiger Methoden sowie Beispiele

王林
王林nach vorne
2023-04-21 13:04:081478Durchsuche

Sie können den Status des Threads über die Thread.getState-Methode abrufen (es gibt insgesamt 6 Thread-Status)

NEW (neu) neu: noch nicht gestartet

RUNNABLE (ausführbarer Status) ausführbar: läuft in der JVM; oder Warten auf das Betriebssystem Andere Ressourcen (z. B. Prozessoren)

//Einige Programmiersprachen teilen RUNNABLE in zwei Situationen auf
//1.running
//2.ready
//Die beiden oben genannten Typen sind alle RUNNABLE in Java

BLOCKED (Blockierter Zustand) blockiert: Warten auf die Monitorsperre (interne Sperre)

WAITING (Wartezustand) Warten: Warten auf einen anderen Thread

Der Aufruf der folgenden Methode befindet sich im Wartezustand

Objekt .wait ohne Timeout-Wert

Kein Thread.join mit Timeout-Wert

LockSupport.park

//Wird später im Detail vorgestellt

TIMED_WAITING (zeitgesteuerter Wartezustand) timed_waiting

Der Aufruf der folgenden Methode erfolgt im zeitgesteuerten Warten state

Thread.sleep

Object mit Timeout-Wert .wait

Thread.join mit Timeout-Wert

LockSupport.parkNanos

LockSupport.parkUnti

//Wird später im Detail vorgestellt

TERMINATED (Beendigungsstatus): Abgeschlossen

Einige Beispiele:

public class Main {
	public static void main(String[] a) {
		Thread dangqian = Thread.currentThread();//获取主线程
		System.out.println(dangqian.getState());//输出RUNNABLE
		//表示主线程正处于RUNNABLE状态
		
		Thread tj = new Thread();//新建1个线程
		System.out.println(tj.getState());//输出NEW
		
		Thread tj1 = new Thread(new Runnable() {
			@Override
			public void run() {
				System.out.println("ACM");
			}
		});
		tj1.start();
		//启动执行完run方法后线程终止 此时处于TERMINATED状态
	}
}

Schlaf-Interrupt-Einführung

Sie können den aktuellen Thread über die Thread.sleep-Methode anhalten und in den Wartezustand wechseln

Während der Pausenzeit, wenn die Interrupt-Methode des Thread-Objekts zum Unterbrechen aufgerufen wird Im Thread wird eine java.lang.InterruptedException-Ausnahme ausgelöst. Nachdem Thread A die Ausführung abgeschlossen hat, führt der aktuelle Thread die Aufgabe weiter aus. Sie können Parameter übergeben, um die maximale Wartezeit festzulegen.

A.isAlive-Methode: Überprüfen Sie, ob Thread A noch aktiv ist

Das obige ist der detaillierte Inhalt vonJava-Thread-Status und Analyse gängiger Methoden sowie Beispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen