Привет всем :) Попытка убедиться, что я понимаю, как работает метод SwingUtilities InvokeLater. Пока я собрал следующее:
- Он запускает графический интерфейс в специальном потоке, называемом потоком диспетчера событий.
- Это делается путем создания объекта Runnable, который содержит ссылку на ваш графический интерфейс
Я пытаюсь понять, как это на самом деле позволяет другому потоку обновлять интерфейс.
Насколько я понимаю, обновление GUI обычно не является потокобезопасным; Я взял это, чтобы означать, что если у вас было два потока, A и B, и они оба пытались изменить значение для определенного компонента (скажем, индикатор выполнения), ничто не мешает им обновлять одновременно и вызывать какой-то прикольный выход.
С помощью метода InvokeLater создается ли какая-либо очередь? Где запросы из потоков A и B хранятся «в очереди» и выполняются один за другим?
Это то место, где оно получает свое имя как «вызывать позже» из-за того, что запрос на обновление графического интерфейса не обрабатывается немедленно, а должен ждать в очереди до своей очереди?
Спасибо, ребята, высоко ценится.