好的,我的问题听起来令人困惑,但这实际上非常简单。
我有一个Runnable,可以启动另一个Runnable实例。
所以基本上:

runnable1-> runnable2

只要runnable2处于活动状态,runnable1是否会保持活动状态?或者启动runnable2时,runnable1是否会完成?

Runnable runnable1;
Runnable runnable2;

runnable1 = new Runnable()
    {
        public void run()
        {
            runnable2 = new Runnable()
            {
                public void run()
                {
                    //Code here
                }
            };
            (new Thread(runnable2)).start();//Now that runnable 2 is started, does runnable 1 temrinate??
        }
    };

(new Thread(runnable1)).start();//This starts first

最佳答案

简短的答案是没有。

长答案。
线程独立执行。
就像您有一个main方法并在其中启动thread一样,main方法将仅调用start,而continue线程将独立运行。

如果要让runnable1等待,直到runnable2完成。您可以使用join()

更清楚一点


“只要runnable2仍然存在,runnable1是否仍然存在?
runnable2启动时runnable1完成吗?”


,这也不正确,这取决于哪个线程首先获得CPU时间。

08-26 20:01