Warum die Verwendung von sleep() in einem einzelnen Thread die Ausführung anhält
Java führt einen separaten Thread zur Verarbeitung von GUI-Elementen ein, der als Event Dispatch Thread bekannt ist (SOMMERZEIT). Der Aufruf von sleep() innerhalb dieses Threads kann dazu führen, dass beide Threads auf den Abschluss warten, bevor sie mit der Ausführung fortfahren.
Dies geschieht, weil GUI-Ereignisse, einschließlich der von Ihren Benutzeroberflächenkomponenten generierten, auf dem EDT verarbeitet werden. Wenn sleep() in diesem Thread aufgerufen wird, werden alle ausstehenden GUI-Ereignisse effektiv angehalten, wodurch die Benutzeroberfläche eingefroren erscheint. Der Hauptthread, der für die Spiellogik verantwortlich ist, wird ebenfalls angehalten, bis der Aufruf von sleep() abgeschlossen ist.
Thread-Stillstand vermeiden
Um ein Einfrieren der Benutzeroberfläche zu verhindern Vermeiden Sie die Verwendung von Thread.sleep() auf EDT. Erwägen Sie stattdessen die Verwendung anderer Methoden wie:
Best Practices
Um eine reaktionsfähige Benutzeroberfläche zu gewährleisten, ist es wichtig, die einzuhalten Befolgen Sie die folgenden Richtlinien:
Das obige ist der detaillierte Inhalt vonWarum friert die Verwendung von „sleep()' in einem einzelnen Thread eine Java-GUI ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!