如何在Java中合并线程?

如何在Java中合并线程?,java,multithreading,Java,Multithreading,我有一个项目,其中项目加载在一个线程中,然后最后需要在主UI线程中访问它们(因为它包含OpenGL上下文) 我的问题是,一个线程完成后,如何合并一个线程 代码示例 new Thread(new Runnable() { @Override public void run() { //Load stuff completed. otherClassMethod(Thread.currentThr

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

要等待另一个线程完成,请调用
otherThread.join()
。 这将阻塞当前线程,直到另一个线程完成

编辑(来自您的示例):


该方法称为
join()
,而不是
merge()
。很简单:)你说的合并是什么意思?你想让两个线程访问相同的数据吗?虽然我可能会避免手动管理线程,但请看一看,这会给多线程带来很多麻烦。在这种情况下,我将如何实现连接,我也将看一看executor服务。不确定OpenGL类型的东西,但是像Swing和SWT这样的GUI库有方法将要在UI线程上运行的东西排队。在Swing中,是@iLoveUnicorns,我包含了你例子中的方法。这就像一个魔咒,仍然对线程在幕后的工作方式感到困惑,我猜是某种地图?
public void otherClassMethod(Thread thread, ResultInterface resultInterface)
{
    //Create stuff that needs open gl context.
    //.....
    //-- end create stuff.

    thread.join();
    resultInterface.completed();
}