6.7Java线程的分类

6.7Java线程的分类

Java中线程的分类

  • 默认的用户线程

  • 为用户线程服务的守护线程--->daemon


Java中线程的特点

  • 虚拟机必须确保用户线程执行完毕(不需要等待守护线程执行完毕)

  • 虚拟机不用等待守护线程执行完毕--->如后台记录操作日志、监控内存使用

Java守护线程的设置和守护线程的使用
package iostudy.priority;

/**
* Java线程分类测试
* 1、用户线程
* 默认线程都是用户线程,虚拟机等待所有线程执行完毕才会停止。否则他不会停止
* 2、守护线程
* 守护线程为用户线程服务,jvm停止不用等待守护线程执行完毕
* @since JDK 1.8
* @date 2021/6/7
* @author Lucifer
*/
public class DaemonTest {
   public static void main(String[] args) {

       /*实例化两个线程对象*/
       God god = new God();
       You you = new You();

       /*实例化代理类,调用start方法*/
       Thread t = new Thread(god);
       /*再中间设置线程类型*/
       t.setDaemon(true); //将用户线程调整为守护线程
       /*
       用户线程执行完毕就会直接停止
       不用等待守护线程执行完毕
        */
       t.start();

       new Thread(you).start();
  }
}

/**
* 创建多线程实现类
* 这是一个用户线程
* @since JDk 1.8
* @date 2021/6/7
* @author Lucifer
*/
class You implements Runnable{

   /*重写run方法*/
   @Override
   public void run(){
       /*循环输出生命周期*/
       for (int i = 1; i <= 365 * 100; i++){
           System.out.println("Life!!!");
      }
       System.out.println("JunkingBoy");
  }
}

/**
* 创建一个守护线程
* @since JDK 1.8
* @date 2021/6/7
* @author Lucifer
*/
class God implements Runnable{

   /*重写run方法*/
   @Override
   public void run(){
       while (true){
           System.out.println("God Father!");
      }
  }
}

 

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14860613.html