有一种线程,它是在后台运行的,它的任务是为其他的线程提供服务,这种线程被称为“后台线程”(Daemon Thread),又称为“守护线程”。
典型的后台线程是定时器”Timer"线程,他负责将固定的时间间隔发送给其他的线程。
后台线程经常用于任务结束时的善后处理。另外,后台线程的优先级要比其他的线程优先级低。
和后台线程相比,一般的线程称为“用户线程”。如果一个应用中只有后台线程在运行,JVM将退出该应用程序。
可以通过setDaemon(boolean d)来将一个普通的线程设置为后台线程。用方法isDaemon()可以用于测试特定的线程是否为后台线程。
package com.liujl.thread; public class DaemonThread extends Thread{ @Override public void run() { while(true){ System.out.println("DaemonThread is running..."); } }; public static void main(String[] args) { DaemonThread dt=new DaemonThread(); // dt.setDaemon(true); dt.start(); } /** * dt.setDaemon(true),设置了dt线程为守护线程,这时调用start(); * 在dt这个线程执行一段时间后将会自动退出,这是因为线程调度程序在监测到只有 * 一个后台线程在运行的时候,它就终止这个引用程序的运行。 * * 读者可以把第13行的代码去掉,再次运行这个引用,此时这个应用程序将永无止境的运行下去。 */ }
时间: 2024-10-23 17:51:27