Я изучал JavaFX самостоятельно и вступил в странное поведение из моего приложения JavaFX (работающего на Windows и JDK 1.8 ).
Я пыталсяпонять модель параллелизма JavaFX.Насколько я знаю, существует единственный поток, который называется Application Thread, который управляет как диспетчеризацией событий, так и очередями и обновлениями пользовательского интерфейса.
У меня естьобработчик первой кнопки («apri», который «открыт» на английском языке), который выполняет
Thread.sleep(2000)
, поэтому, как и ожидалось, графический интерфейс перестает работать на эти 2 секунды.
Но, если в это время я спамю, нажимаю вторую кнопку «Conferma Apertura» (которая «подтверждает открытие» на ENG), GUI ничего не делает в течение оставшегося времени.
После окончания времени ожидания выполняется обработчик, зарегистрированный на второй кнопке.
Это подсказало мне, что даже если поток приложения спал, какой-то (может быть, «другой») поток очереди работал и все равно помещал события в очередь.
Как вы могли бы объяснить это поведение?Операционная система так или иначе вовлечена в это?