Я разрабатываю приложение Java на основе SWING с многопотоковой обработкой.Многопоточность Java и SWING
Идея состоит в том, чтобы создать набор фоновых «задач/сервисов» для выполнения нескольких задач.
Моя проблема заключается в том, как реализовать многопоточность (на нижнем уровне приложения), которая может взаимодействовать с графическим интерфейсом, отображая компоненты SWING при определенных условиях.
Я знаю, что могу использовать SwingWorker, но используя это, я превращу свое приложение более «ориентированным на GUI», которого я не хочу, но с другой стороны я также не хочу, чтобы мои многопоточные классы зависели от классов GUI ,
Какие у вас варианты?
Заранее спасибо.
EDIT
Я забыл упомянуть, что это фоновые задачи должны быть запущены в начале и не могут быть запущены с помощью графического интерфейса пользователя (например, в процессе начальной загрузки).
Создайте свою «многопоточную кодовую базу» независимо от SwingWorker и просто используйте эту кодовую базу в SwingWorkers. Я имею в виду отдельные проблемы и использую крошечный слой абстракции/клей между вашей SwingWorkers и «многопоточной кодовой базой». Возможно, вы даже можете создать дизайн, ориентированный на события/шины. – Xeon
@Xeon Могли бы подробнее рассказать о вашем ответе? Что вы подразумеваете под кодовой базой и «ориентированным на события/автобусом»? Не могли бы вы привести пример (ссылку или что-то еще) о том, что вы предложили? – nervousDev
@nervousDev вы можете посмотреть, например, как работает GWT EventBus. Концепция точно такая же. –