我正在编写一个需要使用线程的 Android 应用程序。
在这个应用程序中,我有 3 个线程从应用程序的开头开始。
这是我的代码:
Thread t1,t2,t3;
protected void onCreate(Bundle savedInstanceState)
{
t1=new Thread(new Runnable()
{
public void run()
{
//do some long stuffs
t3.notify();
}
});
t2=new Thread(new Runnable()
{
public void run()
{
//do some long stuffs
t3.notify();
}
});
t3=new Thread(new Runnable()
{
public void run()
{
this.wait();
//run after t1 & t2 is done.
}
});
t1.start();
t2.start();
t3.start();
}
现在我想 hibernate t3 线程并在 t1 和 t2 完成它们的工作时运行它。
最佳答案
将 t1、t2 引用传递给 t3 并在 t3.run() 内部等待其他线程:
t1.join();
t2.join();
像这样:
final Thread t1, t2, t3;
t1 = new Thread(new Runnable() {
public void run() {
//do some long stuffs
}
});
t2 = new Thread(new Runnable() {
public void run() {
//do some long stuffs
}
});
t3 = new Thread(new Runnable() {
public void run() {
try {
t1.join();
t2.join();
// t1 & t2 have finished
// continue with t3 stuff
} catch (InterruptedException e) {
//handle it
}
}
});
t1.start();
t2.start();
t3.start();
关于java - 如何在 Android 中完成两个线程时运行第三个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26816457/