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.
> 

Reply via email to