zoukankan      html  css  js  c++  java
  • 多线程之守护线程

    Java中有两种线程,一种是用户线程,另一种是守护线程。

    1、用户线程

    用户线程是指用户自定义创建的线程,主线程停止,用户线程不会停止

    public class Demo4Daemon {
      public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
          public void run() {
            for (int i = 0; i < 10; i++) {
              try {
                Thread.sleep(10);
             } catch (Exception e) {
             }
              System.out.println("子线程..." + i);
           }
         }
       });
        thread.start();
        for (int i = 0; i < 5; i++) {
          try {
            Thread.sleep(10);
            System.out.println("主线程" + i);
         } catch (Exception e) {
         }
       }
        System.out.println("主线程执行完毕!");
     }
    }

    结果如下:

    主线程0
    子线程...0
    子线程...1
    主线程1
    主线程2
    子线程...2
    主线程3
    子线程...3
    主线程4
    子线程...4
    主线程执行完毕!
    子线程...5
    子线程...6
    子线程...7
    子线程...8
    子线程...9

    2、守护线程

    守护线程当进程不存在或主线程停止,守护线程也会被停止

    public class Demo4Daemon {
      public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
          public void run() {
            for (int i = 0; i < 10; i++) {
              try {
                Thread.sleep(10);
             } catch (Exception e) {
             }
              System.out.println("子线程..." + i);
           }
         }
       });
        // 设置线程为守护线程
        thread.setDaemon(true);
        thread.start();
        for (int i = 0; i < 5; i++) {
          try {
            Thread.sleep(10);
            System.out.println("主线程" + i);
         } catch (Exception e) {
         }
       }
        System.out.println("主线程执行完毕!");
     }
    }

    结果如下

    主线程0
    子线程...0
    主线程1
    子线程...1
    主线程2
    子线程...2
    主线程3
    子线程...3
    子线程...4
    主线程4
    主线程执行完毕!

    主线程停止,用户线程不会停止,如果我们想要实现主线程停止,用户线程也停止,那么我们可以将用户线程设置为守护线程,这样,主线程停止,用户线程也停止

  • 相关阅读:
    Vue练习三十六:05_01_模拟select控件
    Vue练习三十五:04_09_星级评分系统
    Vue练习三十四:04_07_各种数组方法练习
    Vue练习三十三:04_06_当前输入框高亮显示
    Vue练习三十二:04_05_设置读取属性
    【CC++笔记】指针输出字符串
    【CC++笔记】数组指针越界
    【算法】递归思想
    【学习方法】堕落大学生补救方法
    【数字逻辑】补码技巧
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15778844.html
Copyright © 2011-2022 走看看