Android 如何在第二个线程启动后启动第一个线程完成
我使用一些方法我需要一些方法来完成开始另一个方法,所以我使用线程函数,如何启动一个线程,然后再启动第二个线程Android 如何在第二个线程启动后启动第一个线程完成,android,multithreading,thread-safety,Android,Multithreading,Thread Safety,我使用一些方法我需要一些方法来完成开始另一个方法,所以我使用线程函数,如何启动一个线程,然后再启动第二个线程 Thread thread1 = new Thread(new Runnable() { @Override public void run() { try { loadIrrigationSourceMaster(); loadIrrigationMaster();
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();
超出上述范围:
tag:1
tag:2
但我认为这不是一个好主意。只需将剩下的工作放在第一个线程中
超出上述范围:
tag:1
tag:2
但我认为这不是一个好主意。只需将剩余的作业放在第一个
线程中
要等待线程完成其执行,然后再继续,可以使用join()
方法:
特别是针对您的问题,您可以将thread1.join()
,放在thread1.start()调用之后。join调用将阻止调用线程,直到thread1
的执行完成,这样thread2
将在thread1
完成后初始化并执行
或者,您也可以在thread2
的run()
方法的开头调用thread1.join()
,这样主线程就不需要被join()
调用阻塞。要等待线程在继续之前完成其执行,您可以使用join()
方法:
特别是针对您的问题,您可以将thread1.join()
,放在thread1.start()调用之后。join调用将阻止调用线程,直到thread1
的执行完成,这样thread2
将在thread1
完成后初始化并执行
或者,您也可以在thread2
的run()
方法的开头调用thread1.join()
,这样主线程就不需要被join()
调用阻塞。但它同时调用所有方法,我需要在启动另一个方法后完成,它将在第二个线程上运行方法/代码。然后它将进入第二个线程start()
方法来运行它。我编辑了答案。您在第一个线程的那些方法中使用过任何thread
?。如果是,那么这就是为什么它在完成作业之前跳转到第二个线程的原因。输出ok,但单击按钮同时输出调用所有方法。需要首先将complete all方法标记到另一个标记将启动。第一个线程基于另一个方法调用some for循环条件,以便我使用first thread complete从第二个线程启动,但它同时调用all the方法,我需要在启动另一个方法后完成,它将在第二个线程上运行方法/代码。然后它将进入第二个线程start()
方法来运行它。我编辑了答案。您在第一个线程的那些方法中使用过任何thread
?。如果是,那么这就是为什么它在完成作业之前跳转到第二个线程的原因。输出ok,但单击按钮同时输出调用所有方法。需要首先标记完成另一个标记的所有方法。第一个线程将根据另一个方法调用some for循环条件,以便我使用第一个线程完成以第二个线程方式开始。?你能编辑代码吗?请简要解释一下。?你能编辑代码吗?请简要解释一下