急~!java 主线程和子线程的问题,怎么让子线程永远不断,直到主线程退出
情况是这样的---程序启动时,主线程和子线程两头跑,子线程是去查找文件,而且要不间断的去查找,直到主线程退出了,它就自然也退出。可是现在的问题是,启动时,子线程只是跑了一次,查了一次就不动了......我该怎么写,怎么判断主程序不退出时,子线程就一直跑。。。各位帮帮忙
[解决办法]
where(true)
[解决办法]
1 子线程写个死循环,用标志判断是否退出
while(!stop){
}
2 在主线程要退出时,如果有要求子线程必须处理一些事情,可以调用子线程的 setStop(true);
[解决办法]
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+"次"); }}
[解决办法]
setDaemon(true)
[解决办法]