Я знаю, что означает "поток", и понимаю ли я поток обработки событий (EDT) как
«просто нить», это многое объясняет, но, видимо, не все объясняет.
Я не понимаю, что особенного в этой теме. Например, я не понимаю, почему мы должны запустить графический интерфейс в EDT? Почему «основной» поток это кровать для GUI? Что ж, если мы просто не хотим занимать основной поток, почему мы не можем запустить GUI просто в «другом потоке», почему это должен быть какой-то «специальный» поток с именем EDT?
Тогда я не понимаю, почему мы не можем запустить EDT как любой другой поток? Почему мы должны использовать какой-то специальный инструмент (называемый invokeLater
). И почему GUI, в отличие от любого другого потока, запускается не сразу. Мы должны подождать, пока он не будет готов принять нашу работу. Это потому, что EDT может потенциально выполнять несколько задач одновременно?
Если вы решите ответить на этот вопрос, не могли бы вы использовать действительно простую терминологию, потому что в противном случае, боюсь, я не смогу понять ответ.
ДОБАВЛЕНО:
Я всегда думал, что у нас есть одно «задание» на поток. Итак, в каждом потоке мы выполняем предопределенную последовательность команд. Но мне кажется, что в ветке диспетчеризации событий у нас может быть серьезное задание. Ну, они не выполняются одновременно (поток переключается между различными задачами, но в одном потоке все еще есть несколько задач). Это правильно? Например, в EDT есть один поток, который отображает главное окно, а затем дополнительно к этому мы отправили в EDT еще одну задачу, которая должна обновить один из компонентов окна, и EDT выполнит эту новую задачу, когда она будет готова. Отличается ли EDT от других тем?