当前位置: 代码迷 >> Java相关 >> 急java 主线程和子线程的有关问题,如何让子线程永远不断,直到主线程退出
  详细解决方案

急java 主线程和子线程的有关问题,如何让子线程永远不断,直到主线程退出

热度:1045   发布时间:2016-04-22 23:19:08.0
急~!java 主线程和子线程的问题,怎么让子线程永远不断,直到主线程退出
情况是这样的---程序启动时,主线程和子线程两头跑,子线程是去查找文件,而且要不间断的去查找,直到主线程退出了,它就自然也退出。可是现在的问题是,启动时,子线程只是跑了一次,查了一次就不动了......我该怎么写,怎么判断主程序不退出时,子线程就一直跑。。。各位帮帮忙

------解决方案--------------------
where(true)
------解决方案--------------------
1 子线程写个死循环,用标志判断是否退出
while(!stop){
}

2 在主线程要退出时,如果有要求子线程必须处理一些事情,可以调用子线程的 setStop(true);


------解决方案--------------------
Java code
class ChildThread implements Runnable{    public static boolean stop=false;    static int count = 0;    public ChildThread()    {    }    public void run()    {        while(!stop)        {            // 查找            search();            count++;        }    }    // 查找    private void search()    {        System.out.println("子线程-查找");    }}public class xingfuweiyu implements Runnable{    static ChildThread c=null;    public static void main(String[] args)     {        // 调用主线程        xingfuweiyu m=new xingfuweiyu();        new Thread(m).start();    }    public void run()    {        // 做些事        System.out.println("主线程");                // 调用子线程        c=new ChildThread();        new Thread(c).start();        try        {            Thread.sleep(3000);        }        catch (Exception e)        {        }        ChildThread.stop = true;        System.out.println("子线程-停止了,执行"+c.count+"次");    }}
------解决方案--------------------
Java code
setDaemon(true)
------解决方案--------------------
探讨

Java code
setDaemon(true)

+
Java code
while(true)

------解决方案--------------------
楼上各位也给出,正解
试下吧
主线程退出子线程跟着退出,
setDaemon(true);//就是这句话就 可以了 守护线程,又叫精灵线程吧
  相关解决方案