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

    官网API解释

    setDaemon

    public final void setDaemon(boolean on)
    Marks this thread as either a daemon thread or a user thread. The Java Virtual Machine exits when the only threads running are all daemon threads.

    This method must be invoked before the thread is started.

    Parameters:
    on - if true, marks this thread as a daemon thread
    Throws:
    IllegalThreadStateException - if this thread is alive
    SecurityException - if checkAccess() determines that the current thread cannot modify this thread

    setDaemon设置线程为守护线程,必须放到start()方法之前,目的是当前所有运行中的线程为守护线程时该线程结束

    使用守护线程模拟心跳实验

    package com.dwz.concurrency.chapter4;
    /**
     *     使用守护线程模拟心跳实验
     */
    public class DaemonThread2 {
        public static void main(String[] args) {
            Thread t = new Thread(() -> {
                Thread innerThread = new Thread(() -> {
                    try {
                        while(true) {
                            System.out.println("Do some thing for health check.");
                            Thread.sleep(1_000);
                        }
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }); 
                
                innerThread.setDaemon(true);
                innerThread.start();
            });
            t.start();
            
            try {
                Thread.sleep(3_000);
                System.out.println("T Thread finish done.");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    第八周学习进度
    《梦断代码》阅读笔记01
    冲刺记录一
    NABCD简介
    第七周学习进度
    《编程珠玑》阅读笔记03
    第六周学习进度
    数据库数据定期同步实现
    数据库之间的数据同步
    数据同步——otter
  • 原文地址:https://www.cnblogs.com/zheaven/p/12034273.html
Copyright © 2011-2022 走看看