как начать первый поток завершить после второго потока начать - PullRequest
1 голос
/ 18 июня 2019

Я использую какой-то метод, который мне нужен, чтобы какой-то метод был завершен, чтобы запустить другой метод, так что я использую функцию потока. Как запустить один поток, чтобы перейти к началу второго потока?

Thread thread1 = new Thread(new Runnable() {
        @Override
        public void run() {
            try {

                loadIrrigationSourceMaster();
                loadIrrigationMaster();
                loadSeasonMaster();
                loadFactoryMaseter();


            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
    thread1.start();

    Thread thread2 = new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                loadTransport();
                plantTypeMaster();
                plotOwnerTypeMaster();
                ExitRatoonMaster();

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
    thread2.start();

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Чтобы дождаться завершения выполнения потока, прежде чем двигаться дальше, вы можете использовать метод join(): docs

Специально для вашей проблемы вы можете поставить thread1.join(),сразу после звонка thread1.start().Вызов соединения блокирует вызывающий поток до тех пор, пока thread1 не завершит его выполнение, так что thread2 будет инициализирован и выполнен после завершения thread1.

В качестве альтернативы, вы также можете вызвать thread1.join()в начале run() метода thread2, так что основной поток не нужно будет блокировать вызовом join().

0 голосов
/ 18 июня 2019
  (new Thread(new Runnable() {
        @Override
        public void run() {

            //TODO: fist thread code here 
            Log.w("tag","1");
            (new Thread(new Runnable() {
                @Override
                public void run() {
                       //TODO: second thread code here 
                        Log.w("tag","2");
                }
            })).start();
        }
    })).start();

из вышеперечисленного:

tag:1
tag:2

но я не думаю, что это хорошая идея. сначала поместите остаток своей работы Thread

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...