java守护线程的理解
- package daemonThread;
- /*setDaemon(true)方法将线程设置为守护线程,线程的Daemon默认值为false
- * 只要当前JVM实例中存在任何一个非守护线程没有结束,守护线程就在工作
- * 当进程中不存在非守护线程,则守护线程随着JVM一同结束
- * GC(垃圾回收器)就是一个守护线程
- * 本例中main线程虽然先结束,但是testThread线程还在工作,所以只有当testThread线程也结束,才停止打印i */
- class MyThread extends Thread{
- private int i = 0;
- @Override
- public void run(){
- super.run();
- try{
- while(true){
- i++;
- System.out.println("i="+i);
- Thread.sleep(1000);
- }
- }catch(InterruptedException ie){
- ie.printStackTrace();
- }
- }
- }
- class testThread extends Thread{
- @Override
- public void run(){
- try{
- Thread.sleep(10000); //testThread线程约10秒后结束
- System.out.println(Thread.currentThread().getName()+"线程结束!");
- }catch(InterruptedException ie){
- ie.printStackTrace();
- }
- }
- }
- public class Run {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- try{
- MyThread thread = new MyThread();
- thread.setName("thread");
- thread.setDaemon(true); //将thread线程设为守护线程
- thread.start();
- testThread t = new testThread();
- t.setName("testThread");
- t.start();
- Thread.sleep(5000); //main线程在这里停留5秒
- System.out.println("主线程结束了");//5秒后main线程结束了,但是testThread线程还在执行,所以守护线程继续工作
- /*当所有线程都结束时,thread线程也随之结束*/
- }catch(InterruptedException ie){
- ie.printStackTrace();
- }
- }
- }
运行结果如下图

java守护线程的理解的更多相关文章
- JAVA 对守护线程的理解
1.在start之前,setDaemon. 该现场就成为守护线程了. 2.守护现线程并不是主线程结束,子线程(守护线程)也跟着结束.而是守护线程在没有用户线程运行的情况伴随着JVM退出而结束. 示例代 ...
- Python多线程的创建,相关函数和守护线程的理解
一:多线程的创建 threading库创建线程有两种方式,函数式和继承式 1)函数式 def func(): print 'Starting' print 'Ending' t=threadin ...
- java 守护线程整理
java中finally语句不走的可能存在system.exit(0)与守护线程 线程sleep采用TimeUnit类 设定线程的名字thread.getcurrentThread().setName ...
- 从 JVM 视角看看 Java 守护线程
Java 多线程系列第 7 篇. 这篇我们来讲讲线程的另一个特性:守护线程 or 用户线程? 我们先来看看 Thread.setDaemon() 方法的注释,如下所示. Marks this thre ...
- Java守护线程
最近的项目使用的是dubbo.Web工程发布在Tomcat上,会作为消费者调用其他的dubbo微服务.但是最近发现一个问题,在使用shutdown命令关闭tomcat的时候,Tomcat并没有真正关闭 ...
- 白话JAVA守护线程
OneCoder(苦逼Coder)原创,转载请务必注明出处: http://www.coderli.com/archives/daemon-thread-plain-words/ 关于“白话”:偶然想 ...
- 转:JAVA守护线程
原文地址:https://www.cnblogs.com/wxgblogs/p/5417503.html 详细内容看原文~ ,写的挺好的 在Java中有两类线程:User Thread(用户线程). ...
- Java 守护线程概述
原文出处: 朱小厮 Java的线程分为两种:User Thread(用户线程).DaemonThread(守护线程). 只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最 ...
- JAVA - 守护线程(Daemon Thread)
转载自:http://www.cnblogs.com/luochengor/archive/2011/08/11/2134818.html 在Java中有两类线程:用户线程 (User Thread) ...
随机推荐
- sublime插件使用整理
考虑到后续要有更多的时间来写js,周末好好的把sublime整理了下,很多插件非常好.下面一一来说 1. 注释生成插件 DocBlockr 之前每次写函数的注释都要复制其他函数的注释,然后在写,非常 ...
- varchar2_to_blob,应用向数据库更新LOB字段时的超时问题
将字符串转换为BLOB类型数据,写入服务器. 1,首先利用to_clob函数把varchar2字段转成 clob字段. 2 利用c2b上面函数将clob转成blob. 即: c2b(to_clob( ...
- Laravel项目目录结构说明
Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...
- Maven国内下载站点
鉴于一些原因,从maven中央仓库download依赖包时,被各种折磨,下面就简单看下maven setting.xml的一些简单配置 先贴几个国内可用的maven repository连接: htt ...
- 基于Bootstrap、Jquery的自适应导航栏
css代码: .kch_nav{width: 100%; position: fixed;z-index: 999;top:0;left: 0;right: 0;height: 69px;backgr ...
- ubuntu16041,安装opencv3.1.0
[非常感谢:http://www.linuxdiyf.com/linux/18482.html] 1.依赖关系: sudo apt-get install build-essentialsudo ap ...
- java 事件监听 - 键盘
java 事件监听 - 键盘 //事件监听 //键盘事件监听,写了一个小案例,按上下左右,改变圆形的位置,圆形可以移动 import java.awt.*; import javax.swing.*; ...
- JS toFixed 四舍六入五成双
以前一直以为toFixed就是四舍五入的方法,后来又有一段时间以为toFixed是五舍六入.今天终于写的时候,终于才知道toFixed是一个叫做四舍六入无成双的诡异的方法... 完全不明白为什么要这么 ...
- 解决 umount 时出现的 "Device is busy"
1.umount, 老是提示:device is busy, 服务又不能停止的. 可以用"umount -fl"解决! 2.mount的基本用法是? 格式:mount [-参数] ...
- Eclipse连接VirtualBox中的Android x86
Android x86 Alt+F1打开命令行,命令netcfg查看当前ip,记住,然后Alt+F7回界面. Eclipse-Window-Preferences-Android-DDMS-Use A ...