Java Дождитесь завершения потока

У меня есть поток, загружающий данные, и я хочу дождаться завершения загрузки, прежде чем загружать данные. Есть ли стандартный способ сделать это?

Дополнительная информация:

У меня есть класс Download, который получает данные из URL (сериализованные POJO). Скачать можно запускать и наблюдать. Он отслеживает загруженные байты и размер загрузки. У меня есть индикатор выполнения, который отображает прогресс для пользователя. Графический интерфейс пользователя наблюдает за загрузкой, чтобы обновить индикатор выполнения.

Когда POJO загружен, я хочу получить его и перейти к следующему шагу. Каждый шаг должен ждать завершения предыдущего. Проблема в том, что я не могу придумать способ приостановить мое приложение, чтобы дождаться потока загрузки. После завершения загрузки я хочу вызвать download.getObject (), который вернет данные в виде объекта. Затем я могу применить его и продолжить следующую загрузку.

У меня есть вспомогательный класс, который управляет URL-адресами для загрузки и выполняет все вызовы Download. Этот вызов вызовет getObject и произведет преобразование. Gui вызывает helper.getUser (). helper запускает поток, и я хочу, чтобы он «знал», когда он закончится, чтобы он мог вернуть приведенный объект.

Есть предложения / примеры? Я нахожусь на начальных этапах разработки этого дизайна, поэтому я готов его изменить.

Благодарю вас.

Обновление:

Я следил за http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html#get и использовал модальное окно для блокировки до завершения потока. Код был очень запутанным, и мне не нравится такой подход. Я буду продолжать пытаться найти «чистый» способ управления рабочим процессом процессов загрузки.

56
задан Ravindra babu 17 September 2016 в 18:01
поделиться