守护线程实战与应用场景

守护线程

    程序分为用户线程和守护线程 虚拟机不会等待守护线程执行完毕

守护线程一般用来做一些 “不关键的事情”

如gc垃圾回收器就是一个经典的守护线程

package com.li.changGe.multithreading.threadState;

public class DaemonDemo01 {
          
   
  public static void main(String[] args) {
          
   
      /**
       * 播放器线程始终守护着视频线程
       * 
       * player.setDaemon(true);
       * 设置播放器线程为守护线程
       */
      Thread player = new Thread(() -> {
          
   
          System.out.println("播放器打开了");
          while (true){
          
   
              System.out.println("播放器进行中");
              try {
          
   
                  Thread.sleep(10);
              } catch (InterruptedException e) {
          
   
                  e.printStackTrace();
              }
          }//while
      });

      Thread video = new Thread(() -> {
          
   
          System.out.println("视频打开了");
          for (int i = 0; i < 3; i++) {
          
   
              System.out.println("看视频中");
          }
          System.out.println("视频关闭了");
      });

      /**
       * 默认为false用户线程
       */
      player.setDaemon(true);

      player.start();
      video.start();

  }

}
经验分享 程序员 微信小程序 职场和发展