Java EventQueue. Warum sollte alles in invokelater Methode sein?

7

In dem Buch, das ich gerade lese, hat jedes GUI-Beispiel mit Multithreading so etwas:

%Vor%

(ich meine EventQueue). Aber wird der Code nicht automatisch im Hauptthread (EDT) ausgeführt?

    
nicks 25.04.2011, 17:14
quelle

2 Antworten

6

Desktop-GUI-Anwendungen funktionieren normalerweise auf diese Weise. Es gibt einen Thread für gui und einen oder mehrere Threads für den Rest der Anwendung. Mit EventQueue geben Sie an, was der GUI-Thread von anderen Threads tun soll.

    
Stas Kurilin 25.04.2011, 17:28
quelle
13

Der Haupt-Thread ist nicht der gleiche wie der EDT. Wenn Sie System.out.println(Thread.currentThread().getName() hinzufügen, sehen Sie, dass main innerhalb von main() und AWT-EventQueue-0 ausgegeben wird, wenn Sie sich innerhalb der run() -Methode von Runnable befinden.

Hier ist eine Diskussion der Geschichte der single-threaded Regel in Swing , die helfen könnte, die Dinge klarer zu machen.

    
no.good.at.coding 25.04.2011 17:27
quelle