Ya, "event thread", "fx thread", "ui thread", "app thread", "FX Application thread" --- they're all the same thing. It would be better if we settled on one name.
Richard On Oct 4, 2013, at 12:00 PM, [email protected] wrote: > It's the JavaFX Application Thread. We tend to use the term "event thread" > and "UI thread" to indicate that the thread is a distinguished UI thread that > processes operating system events by running an event loop. > > Steve > > On 04/10/2013 2:45 PM, John Smith wrote: >>> IllegalStateException("This operation is permitted on the event thread >>> only") >> What is the event thread? >> >> Current warnings about thread rule violations appear to be something like >> below (from: >> http://stackoverflow.com/questions/12182592/javafx-2-x-swing-not-on-fx-application-thread): >> >> Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: >> Not on FX application thread; currentThread = AWT-EventQueue-0 >> >> It is very confusing if warnings about what thread you should be on might >> use different names for what is perhaps the same thing. >> >> If I do System.out.println(Thread.currentThread().getName()); in a start() >> method, I get: >> >> JavaFX Application Thread >> >> The JavaFX Architecture overview >> (http://docs.oracle.com/javafx/2/architecture/jfxpub-architecture.htm#A1107438) >> only mentions these threads: >> >> JavaFX application thread: This is the primary thread used by JavaFX >> application developers. Any "live" scene, which is a scene that is part of a >> window, must be accessed from this thread. A scene graph can be created and >> manipulated in a background thread, but when its root node is attached to >> any live object in the scene, that scene graph must be accessed from the >> JavaFX application thread. This enables developers to create complex scene >> graphs on a background thread while keeping animations on 'live' scenes >> smooth and fast. The JavaFX application thread is a different thread from >> the Swing and AWT Event Dispatch Thread (EDT), so care must be taken when >> embedding JavaFX code into Swing applications. >> >> Prism render thread: This thread handles the rendering separately from >> the event dispatcher. It allows frame N to be rendered while frame N +1 is >> being processed. This ability to perform concurrent processing is a big >> advantage, especially on modern systems that have multiple processors. The >> Prism render thread may also have multiple rasterization threads that help >> off-load work that needs to be done in rendering. >> >> Media thread: This thread runs in the background and synchronizes the >> latest frames through the scene graph by using the JavaFX application thread. >> >> -----Original Message----- >> From: [email protected] >> [mailto:[email protected]] On Behalf Of Petr Pchelko >> Sent: Friday, October 04, 2013 1:40 AM >> To: OpenJFX list >> Subject: Enabling Glass thread checks >> >> Hello, OpenJFX. >> >> FX is a single threaded UI toolkit. Glass (the underlying native window >> toolkit portability layer for FX) is being changed to ensure it is accessed >> from the UI thread. You can follow progress in >> https://javafx-jira.kenai.com/browse/RT-26891 >> >> We are reenabling the Glass thread checks ones again. Previous attempts >> failed, because we've been finding some threading issues, however now all >> the threading issues have been fixed and we are in a good state to switch on >> the checks again. >> >> The following exception would mean that you've hit a thread check: >> IllegalStateException("This operation is permitted on the event thread >> only"). >> In that case please check your threading and if everything seems correct - >> please contact the Glass team. >> >> Thank you. >> With best regards. Petr. >
