我有一个项目,其中项目在一个线程中加载,然后在主UI线程中需要访问它们(因为它包含OpenGL上下文)。
我的问题是,一旦一个线程完成,如何合并一个线程?
代码示例。
new Thread(new Runnable() {
@Override
public void run()
{
//Load stuff completed.
otherClassMethod(Thread.currentThread(), new ResultInterface(){
@Override
public void completed(){
//Start App.
}
})
}
});
public void otherClassMethod(Thread thread, ResultInterface resultInterface)
{
//Create stuff that needs open gl context.
//.....
//-- end create stuff.
Thread thisThread = Thread.currentThread()
thisThread.merge(thread); //?? Where I'm stuck.
ResultInterface.completed
}
答案 0 :(得分:2)
要等待另一个线程完成,请致电otherThread.join()
。
这会阻止当前线程,直到 otherThread 完成。
编辑(来自您的示例):
public void otherClassMethod(Thread thread, ResultInterface resultInterface)
{
//Create stuff that needs open gl context.
//.....
//-- end create stuff.
thread.join();
resultInterface.completed();
}