Java Daemon线程简介
所谓Daemon(守护线程)就是运行在程序后台的线程,通常守护线程是由JVM创建的,用于辅助用户线程或者JVM工作,比如典型的GC线程。用户创建的线程也可以设置成Daemon线程(通常需要谨慎设置),
1 Thread t = new Thread(new Runnable() { 2 public void run() { 3 Thread.sleep(1000); 4 }},“”); 5 t.setDaemon(true);//设置守护线程 6 t.start()
程序的主线程(main线程)也不是守护线程。Daemon线程在java里面的定义是,如果虚拟机中只有Daemon线程运行,则虚拟机退出。
1)虚拟机中可能同时有多个线程执行,只有当所有的非守护线程(通常都是用户线程)都结束的时候,虚拟机的进程才会结束,不管当前运行的线程是不是main线程。
2)main线程运行结束,如果此时运行的其他线程全部是Daemon线程,JVM会使这些线程停止,同时退出。但是如果此时正在运行的其他线程有非守护线程,那么必须等所有的非守护线程结束,JVM才会退出
使用守护线程的时机
守护线程经常用作与执行一些后台任务,因此有时它也被称为后台线程,当你希望关闭某些线程的时候,或者退出JVM进程的时候,一些线程能够自动关闭,此时就可以考虑用守护线程为你完成这样的工作。

浙公网安备 33010602011771号