Heim  >  Artikel  >  Java  >  So verwenden Sie Warten, um den Thread-Status in Java zu ändern

So verwenden Sie Warten, um den Thread-Status in Java zu ändern

WBOY
WBOYnach vorne
2023-04-29 22:01:121004Durchsuche

Erklärung

1. Es gehört zur Object-Klasse. Nachdem das Objekt die Wartemethode aufgerufen hat, gibt es den Thread frei, der derzeit die Objektsperre hält, und tritt in die Warteschlange ein.

2. Die andere Partei ruft notify auf, um die Sperre des Konkurrenten aus einem zufällig ausgewählten Thread in der Warteschlange aufzuwecken, und die andere Partei ruft notifyall auf, um die Sperre des Konkurrenten aus allen Threads in der Warteschlange aufzuwecken.

Instanzen

public class Demo {
    public static void main(String[] args) {
        Demo demo = new Demo();
        Thread t1 = new Thread(() -> {
            synchronized (demo) {
                System.out.println("t1 start");
                try {
                    demo.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("t1 end");
            }
        });
        Thread t2 = new Thread(() -> {
           synchronized (demo) {
               System.out.println("t2 start");
               System.out.println("t2 end");
               demo.notify();
           }
        });
        t1.start();
        t2.start();
    }
}

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Warten, um den Thread-Status in Java zu ändern. 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