Как запустить один поток после завершения другого потока

Я хочу запустить два потока r1 и r2 . Сначала запустите r1 и после завершения r1 запустите r2 (только после завершения r1 ). Как это можно сделать, два потока, один за другим?

Мой ответ здесь имеет пример использования Thread и Handler . Этот метод может быть полезен, если вы хотите выполнить некоторые обновления пользовательского интерфейса между потоками.

Почему бы вам не выполнить все задачи, которые вы хотите, в одном потоке? Таким образом, они будут «естественно» один за другим.

Способ реализации этого зависит от того, какие задачи вы хотите выполнять, и как вы передаете им необходимую информацию для запуска.

Для этого вы можете использовать метод join ().

  1. Сделать логическую переменную с изначально ложным
  2. Начать первую цепочку
  3. После завершения всего выполнения 1-го потока значение Boolean будет равно true
  4. Не начинайте использовать вторую нить / если флаг не станет истинным