- 浏览: 1183149 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (361)
- java综合 (33)
- 项目管理 (10)
- 工作流 (6)
- spring (11)
- hibenate (17)
- struts (0)
- javascript,html,css,ajax,jquery (11)
- IDE (9)
- 生活 (0)
- 工作 (0)
- 杂记 (1)
- 数据库 (96)
- 服务器 (5)
- 可视编辑 (0)
- freemarker (6)
- 操作系统 windows (13)
- web页面 (6)
- jms (15)
- 调优 (4)
- 测试和bug管理 (2)
- 原理 (1)
- 項目-atf (17)
- 安全 (3)
- xml (4)
- 操作系统 liunx (21)
- 网络 (22)
- office (11)
- 设计 (2)
- 软件 (1)
- 数据库 mysql (6)
- 胖客户端-flex (1)
- 正则 (9)
- oracle- liunx (3)
- sql2000 (2)
- 模式 (1)
- 虚拟机 (2)
- jstl (2)
- 版本控制 打包工具 (0)
- AOP (1)
- demo (1)
- 小软件 (2)
- 感恩 (1)
- iphone 4 (1)
- 反欺诈业务经验整理 (0)
最新评论
-
sea0108:
mark
java内存模型 -
XingShiYiShi:
方便把:testPNR();具体实现发出来吗?谢谢
用正则表达式解析 航信的电子客票和pnr报文 -
wh359126613:
如果js和webservice不在同一个服务器上,有跨域问题如 ...
使用javascript调用webservice示例 -
雨飛雁舞:
...
oracle 动态性能(V$)视图 -
ouyang1224:
好东西
oracle 动态性能(V$)视图
http://fruitking.iteye.com/blog/419951
先来一个不是守护线程的例子:
public class Thread1 implements Runnable {
public void run() {
for (;;) {
try{
Thread.sleep(500);
}catch(Exception e){
e.printStackTrace();
}
System.out.println("Thread 1 run");
}
}
public static void main(String[] args) {
System.out.println("Thread main started!");
try {
(new Thread(new Thread1())).start();
} catch (Exception e) {
}
System.out.println("Thread main ended!");
}
}
这样主线程结束了,但是启动线程Thread1这个实例还没有结束,将一直运行下去
来看一个守护线程的例子:
public class ThreadDaemon implements Runnable {
public void run() {
for (;;) {
System.out.println("Thread 1 run");
}
}
public static void main(String[] args) {
System.out.println("Thread main started!");
try {
Thread a = new Thread(new ThreadDaemon());
a.setDaemon(true);
a.start();
} catch (Exception e) {
}
System.out.println("Thread main ended!");
}
}
运行结果如下:
Thread main started!
Thread main ended!
Thread 1 run
Thread 1 run
Thread 1 run
Thread 1 run
Thread 1 run
后面就停止没有了输出了
说明那个子线程ThreadDaemon也结束了
这就是守护线程的含义:只要主线程退出了,不管守护线程死活都强制退出
应用场景:
管理作用,后台管理者
比如:
进行内存回收,垃圾清理等工作
无论是什么线程,都一定会分时间片执行的,和上面的检测拼写及输入并没有任何关系
比如你正在 用 Java 写成的编辑器 写 Word 文档,
你一边敲键盘,这是个 非守护线程, 后台还有一个 拼写检查 线程,它是个守护线程,他尽量不打扰你写稿子, 你们可以同时进行,他发现有拼写错误时在状态条显示错误,但是你可以忽略。
就像 城堡门前有个卫兵 (守护线程),里面有诸侯(非守护线程),他们是可以同时干着各自的活儿,但是 城堡里面的人都搬走了, 那么卫兵也就没有存在的意义了。
守护线程与普通线程的唯一区别是:当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;如果还有一个或以上的非守护线程则不会退出。(以上是针对正常退出,调用System.exit则必定会退出)
所以setDeamon(true)的唯一意义就是告诉JVM不需要等待它退出,让JVM喜欢什么退出就退出吧,不用管它。
发表评论
-
介绍Java GC种类,并更换 调优GC
2011-03-04 03:42 2119转载自:http://blog.csdn.net/rola ... -
smc_5_1_0小例子
2010-06-25 15:33 0smc_5_1_0小例子 -
Hessian 例子
2010-06-25 15:27 0Hessian 例子 -
java小日历带农历(转)
2010-06-20 15:55 1477http://zengming526.iteye.com/bl ... -
Annotation exmaple
2009-12-14 09:44 1067如何使用注解的小例子 -
Java6 WebService @WebService
2009-12-11 10:39 43161. 新建一个JAVA project.2. 新建一个He ... -
JNI 数据类型转换
2009-11-18 12:01 21177Java代码 #include <jni ... -
JNI 返回结构体参数
2009-11-18 11:58 8842如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jn ... -
Map 四种同步方式的性能比较
2009-11-01 21:03 1922如果需要使 Map 线程安全,大致有这么四种方法: 1、使用 ... -
ConcurrentHashMap之实现细节
2009-11-01 21:00 2801ConcurrentHashMap是Java 5中支持高并发、 ... -
Java反射经典实例
2009-09-28 16:30 1980Java提供了一套机制来动态执行方法和构造方法,以及数组操作等 ... -
servlet 线程 安全 threadlocal (基础知识了)
2009-09-15 13:05 3215关键字: j2ee servlet 线程 ... -
java toString() ReflectionToStringBuilder
2009-06-18 11:31 2078@Override public String toStrin ... -
解决JAVA服务器性能问题
2009-04-13 01:51 2825解决JAVA服务器性能问题 ... -
java内存模型
2009-04-12 23:10 5618Weblogic系统管理总结(7.1/8.0)关于JVM内存管 ... -
Java线程总结
2009-04-12 20:32 1137在论坛上面常常看到初 ... -
删除字符串中的空格或将字符串的多个空格换位单个空格
2009-04-10 15:44 2470//将字符串的多个空格换位单个空格 public static ... -
Java 中文于unicode 互转
2009-04-06 03:08 3219关键字: java unicode convert 转换 ... -
Java EE 6体系结构的变革
2009-03-27 17:54 1463又看到 Reza 同学为 Java EE 6 奔走呼告了。如同 ... -
体验Java1.5中面向方面(AOP)编程
2009-03-12 19:42 1117对于一个能够访问源代码的经验丰富的Java开发人员来说,任何程 ...
相关推荐
Java 的守护线程什么是Java的守护线程( Daemon Thread )?守护线程的区别?守护线程的作用?守护线程如何创建?守护线程如何判断?守护线程使用的注意事项总结 什么是Java的守护线程( Daemon Thread )? Java 提供...
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 作用 Daemon的作用是为其他线程的运行提供便利服务,守护线程典型的应用是 GC (垃圾回收器),它是一个很称职的守护者。 区别 ...
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 。下面通过本文给大家分享java守护线程实例详解,需要的朋友参考下吧
java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任 何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户线程。 Thread....
本文实例讲述了Python守护线程用法。分享给大家供大家参考,具体如下: 如果你设置一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出。如果你的主线程在退出的时候,...
目录1、Python GIL(Global Interpreter Lock)2、进程(process)多进程multiprocessing进程间通讯-Queues/Pipes/Managers进程锁进程池3、线程(thread)语法join函数daemon(守护线程)线程锁之Lock(互斥锁mutex)/RLock...
daemon thread 守护线程,如果守护线程之外的线程都结束了。守护线程也会结束,并强行终止整个程序。不要在守护进程中进行资源相关操作。会导致资源不能正确的释放。在非守护进程中使用Event。 Thread 类 (group=...
多线程基本概念 创建线程的方式 线程的生命周期及控制 线程的优先级及调度 多线程的互斥与同步 守护线程 (Daemon) 线程组 (ThreadGroup)
threading 模块支持守护线程, 其工作方式是:守护线程一般是一个等待客户端请求服务的服务器。 如果把一个线程设置为守护线程,进程退出时不需要等待这个线程执行完成。 如果主线程准备退出时,不需要等待某些子...
threading模块主要对象三、threading.Thread对象1、语法2、参数3、常用方法四、python开启线程的两种方法1、使用threading.Thread 线程对象2、继承父类threading.Thread五、Threading模块主要函数1、主要函数介绍2、...
多线程复习,欢迎大家Star 包名和内容对应如下: ...no9_daemon_thread 守护线程实例 no10_threadgroup 线程组 no11_thread_catch_exception 指定异常捕获类捕获线程中的异常 no12_producter_consumer_wait_no
线程的知识太多,知识点有深有浅,往深的研究会涉及操作系统、CPU、内存,往浅了说就是一些语法。没有一定的知识积累,很难把线程的知识...根据线程运行模式,可以把线程分为前台线程、后台线程和守护(Daemon)线程:
如果你设置一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出。如果你的主线程在退出的时候,不用等待那些子线程完成,那就设置这些线程的daemon属性。即在线程开始...
幸*启动配置文件当中的需要守护的程序 执行成功返回1,中途出错,返回-1 长界零家墨军零家零率家三哮零座零率零零容岸军零罕型率零零零零牢察座察零零零零季球军零容零 int moniter_ run(struct proc_struct"must...
它可以作为工作在任何时候都Python守护线程等待连接或一个信号处理器(停止你的应用程序,并等待连接)。 对套接字的访问仅限于应用程序的有效用户ID或root。 这就像扭曲的 。 它更简单(没有依赖项),仅在Unix域...
keventd核心线程,由init线程创建,在核心态运行context_thread()函数 对于I386平台 基本相同。 对于2.4.x版内核 这一部分的启动过程在2.4.x内核中简化了不少,缺省的独立初始化过程只剩下网络 (sock_init()...