什么是守护线程

2022-11-04  本文已影响0人  糯米团子123
  1. 守护线程定义
    与守护线程相对应就是用户线程,用户线程可以理解为系统工作的线程,而守护线程守护的就是用户线程。当用户线程全部执行完毕,守护线程才会跟着结束。
    也就是说守护线程必须伴随着用户线程,如果一个应用内只存在一个守护线程,没有用户线程,那么守护线程自然会退出。
  2. 简单应用
public class DemoController {

    static class DaemonThread{
        public static void execute(){
            for (int i = 0;;i++ ){
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(i);
            }
        }
    }
    public static void main(String[] args) throws IOException {
        Thread thread = new Thread(() -> execute());
        thread.setDaemon(true);
        thread.start();
        System.in.read();
    }
}

创建一个简单线程,设置daemon为true即表示设置为守护线程,这里主线程是用户线程阻塞任何一个系统输入后退出,守护线程守护的是主线程,守护线程每隔1s打印i的值,直到主线程输入任何一个字符退出,主线程退出后,守护线程也退出了不再打印。

ps:setDeamon()必须设置在线程start方法启动之前,不然会抛出异常。

上一篇 下一篇

猜你喜欢

热点阅读