问一个关于线程方面的问题
在一个main方法中启动一个线程t1, t1的run方法中启动了另一个线程t2,t2是不是t1的子线程? 当t1结束后为什么t2还会继续执行?

解决方案 »

  1.   

    这个问题有难度,没学习过什么是子线程但我知道,t1中启动了t2,t1和t2是两个生命周期没有什么必然联系,只有一点,就是t1先于t2启动。谁选结束是不定的。
      

  2.   

    java中没有所谓的严格的父线程与子线程之分,因为不管是谁启动了谁,启动方并不是说就有了对被启动方的控制权了。但是在守护线程里有这种运行方式,即:setDaemon(true); 让自己变为守护线程,那么当所有非守护线程结束了,自己(线程)必须结束。