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
    主线程执行完毕!

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

  • 相关阅读:
    java中一个类中没有公共的构造方法,则说明不能让外界去new对象。
    PyQt IDE 环境搭建
    移动App开发基本技术面
    创业公司的技术管理
    软件工程师职业道德规范和实践要求
    比较好的刷题网站推荐
    对于程序员在boss直聘求职的建议
    cocospod 安装和使用
    TabBarController和其他view无法建立Relationship segue的原因
    面试与反面试的一些问题
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15778844.html
Copyright © 2011-2022 走看看