如何在Java中合并线程?

时间:2015-07-24 21:00:18

标签: java multithreading

我有一个项目,其中项目在一个线程中加载,然后在主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
    }

1 个答案:

答案 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();
}