好的,我的问题听起来令人困惑,但这实际上非常简单。
我有一个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时间。