Я создаю приложение, в котором у меня будет поток SwingWorker, который сам по себе закручивает несколько рабочих потоков. Хотя эти потоки детей выполняют свою работу, я хочу добиться того, что когда прерывается родительский поток, я хочу, чтобы все дети тоже остановились (, т. К. Для них также было прервано). Я понимаю, что одним из способов достижения этой цели является использование глобальной переменной и включение потоков child в это собственное значение. Однако мне было интересно, будет ли это правильным подходом. Любые комментарии/предложения будут оценены.SwingWorker Прерывающие потоки
У меня в основном есть простой пользовательский интерфейс с JButton (сначала текст этого параметра установлен в «Start»). Когда кнопка нажата, текст изменяется на «Стоп», и инициируется поток родительского потока SwingWorker. Этот поток отправляет местоположение каталога в качестве параметра. То, что этот поток в свою очередь делает, порождает протекцию для каждого файла, который он находит в этой папке для выполнения определенной операции. Однако я хочу добиться того, что, как только щелкнет JButton, родительский поток должен остановить сканирование папки, а дети должны остановить сканирование файла.
Просто хотел узнать, какая будет предлагаемая методология передачи сообщений между родительским потоком и дочерним потоком для этой операции. Глобальная переменная? Любые комментарии/предложения были бы очень полезны для меня. Благодаря!
круто .... я попробую этот подход. Это выглядит лучше, чем использование глобальной переменной. Я на самом деле вызываю cancel(), когда пользователь нажимает JButton. Я думаю, что переопределить его, чтобы отменить детей, было бы хорошей идеей. Спасибо @trashgod за предложение! – Sujay