我们知道当前台进程停止时,后台进程也会自动停止,那如何直观的看后台前台的运行呢?
//设置两个线程:线程1,线程2
class FirstOne implements Runnable{
public void run(){
while(true){
System.out.println("线程1");
}
}
}
class FirstTwo implements Runnable{
public void run(){
while(true){
System.out.println("线程2");
}
}
}
public class MultithreadingTwo {
//主函数是一个前台线程
public static void main(String[] args){
Thread one=new Thread(new FirstOne(),"线程1");
Thread two=new Thread(new FirstTwo(),"线程2");
one.setDaemon(true);
two.setDaemon(true);//将两个线程一起设为后台线程
one.start();//设置断点
two.start();//设置断点
for(int i=0;i<50;i++){
System.out.println("one");
}//延长前台线程的运行时间
System.out.println("one进程是否为后台进程"+one.isDaemon());//设置断点
System.out.println("two进程是否为后台进程"+two.isDaemon());
}
}
(在控制台输出的内容可以判断什么在运行)
1.根据代码设置断点(断点位置不同,看到的东西多少也不同)
2.进行调试,注意运行到第一个断点时,后台线程还未运行,一步步调试,运行到第二个断点时,发现第一个后台进程在运行,同样运行到第三个断点,两个后台进程都在运行,主函数全部结束后,两个后台进程都结束
当我们不设置断点时,控制台会优先响应前台进程中的,可以自己测试
总结:
*当我们开启后台进程时,它会一直运行,知道关闭或前台进程全部停止
*主函数中的进程是前台进程
*前台进程的优先级别比后台进程的高