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.
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.
Tags und Links java multithreading swing event-dispatch-thread