java 守护线程的关闭】的更多相关文章

最近的项目使用的是dubbo.Web工程发布在Tomcat上,会作为消费者调用其他的dubbo微服务.但是最近发现一个问题,在使用shutdown命令关闭tomcat的时候,Tomcat并没有真正关闭,进程仍然在运行. 上网查了以下,原因是netty有时候会启动一个非守护线程.那么守护线程和非守护线程有什么区别呢? Java语言中,可以创建两种进程:守护线程和用户线程. 用户线程就是我们平时创建的普通线程.守护线程主要是用来为用户线程服务的.为什么创建一个用户线程会导致前面我们提到的问题呢.其实…
原文出处: 朱小厮 Java的线程分为两种:User Thread(用户线程).DaemonThread(守护线程). 只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最后一个非守护线程结束是,守护线程随着JVM一同结束工作,Daemon作用是为其他线程提供便利服务,守护线程最典型的应用就是GC(垃圾回收器),他就是一个很称职的守护者. User和Daemon两者几乎没有区别,唯一的不同之处就在于虚拟机的离开:如果 User Thread已经全部退出运行了,只剩下D…
当我们在Java中创建一个线程,缺省状态下它是一个User线程,如果该线程运行,JVM不会终结该程序.当一个线被标记为守护线程,JVM不会等待其结束,只要所有用户(User)线程都结束,JVM将终结程序及相关联的守护线程. Java中可以用 Thread.setDaemon(true) 来创建一个守护线程.咱们看一个Java中有关守护线程的例子. public class JavaDaemonThread { public static void main(String[] args) thro…
Java 多线程系列第 7 篇. 这篇我们来讲讲线程的另一个特性:守护线程 or 用户线程? 我们先来看看 Thread.setDaemon() 方法的注释,如下所示. 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 b…
OneCoder(苦逼Coder)原创,转载请务必注明出处: http://www.coderli.com/archives/daemon-thread-plain-words/ 关于“白话”:偶然想到的词,也许有一天能成为一个系列.目的就是用简洁,明快的语言来告诉您,我所知道的一切.   Java中的线程分两类,用户线程和守护线程. Thread commonThread = new Thread("Common Thread"); 这样就是用户线程. Thread daemonTh…
原文地址:https://www.cnblogs.com/wxgblogs/p/5417503.html 详细内容看原文~  ,写的挺好的 在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) .用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作:只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作.Daemon的作用是为其他线程的运行提供便利服…
转载自:http://www.cnblogs.com/luochengor/archive/2011/08/11/2134818.html 在Java中有两类线程:用户线程 (User Thread).守护线程 (Daemon Thread). 所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分.因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程.反过来说,只要任何非守护线…
java的守护线程:具体定义我也不太清楚,百度和谷歌了看的也不是很明白,但是啊,下边有给出一个例子自己领悟吧. 一.计时器的Timer声明时是否声明为守护线程对计时器的影响. /** * */ package timer_test; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * @author 9082046**@qq.com * */ public class TimerSche…
java中finally语句不走的可能存在system.exit(0)与守护线程 线程sleep采用TimeUnit类 设定线程的名字thread.getcurrentThread().setName() 设定守护线程thread.getcurrentThread().setDaemon(true) http://www.cnblogs.com/diyingyun/archive/2011/12/04/2275268.html 守护线程在没有用户线程可服务时自动离开,在 Java中比较特殊的线程…
package daemonThread; /*setDaemon(true)方法将线程设置为守护线程,线程的Daemon默认值为false * 只要当前JVM实例中存在任何一个非守护线程没有结束,守护线程就在工作 * 当进程中不存在非守护线程,则守护线程随着JVM一同结束 * GC(垃圾回收器)就是一个守护线程 * 本例中main线程虽然先结束,但是testThread线程还在工作,所以只有当testThread线程也结束,才停止打印i */ class MyThread extends Th…