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

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

  • 相关阅读:
    session的工作原理
    jsp与servlet
    java对象的克隆以及深拷贝与浅拷贝
    vi和vim编辑器
    远程登录Linux系统(使用xshell),远程上传加载文件(使用Xftp)
    Linux目录结构(目录结构详解是重点)
    虚拟机CentOS克隆
    虚拟机CentOS创建/使用快照
    VMware Tools安装
    VM配置Centos(第十三步分区设置)
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15778844.html
Copyright © 2011-2022 走看看