- 浏览: 1197667 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 2165转载自: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 1513http://zengming526.iteye.com/bl ... -
Annotation exmaple
2009-12-14 09:44 1111如何使用注解的小例子 -
Java6 WebService @WebService
2009-12-11 10:39 43531. 新建一个JAVA project.2. 新建一个He ... -
JNI 数据类型转换
2009-11-18 12:01 21221Java代码 #include <jni ... -
JNI 返回结构体参数
2009-11-18 11:58 8889如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jn ... -
Map 四种同步方式的性能比较
2009-11-01 21:03 2000如果需要使 Map 线程安全,大致有这么四种方法: 1、使用 ... -
ConcurrentHashMap之实现细节
2009-11-01 21:00 2839ConcurrentHashMap是Java 5中支持高并发、 ... -
Java反射经典实例
2009-09-28 16:30 2024Java提供了一套机制来动态执行方法和构造方法,以及数组操作等 ... -
servlet 线程 安全 threadlocal (基础知识了)
2009-09-15 13:05 3250关键字: j2ee servlet 线程 ... -
java toString() ReflectionToStringBuilder
2009-06-18 11:31 2119@Override public String toStrin ... -
解决JAVA服务器性能问题
2009-04-13 01:51 2861解决JAVA服务器性能问题 ... -
java内存模型
2009-04-12 23:10 5658Weblogic系统管理总结(7.1/8.0)关于JVM内存管 ... -
Java线程总结
2009-04-12 20:32 1173在论坛上面常常看到初 ... -
删除字符串中的空格或将字符串的多个空格换位单个空格
2009-04-10 15:44 2500//将字符串的多个空格换位单个空格 public static ... -
Java 中文于unicode 互转
2009-04-06 03:08 3250关键字: java unicode convert 转换 ... -
Java EE 6体系结构的变革
2009-03-27 17:54 1501又看到 Reza 同学为 Java EE 6 奔走呼告了。如同 ... -
体验Java1.5中面向方面(AOP)编程
2009-03-12 19:42 1153对于一个能够访问源代码的经验丰富的Java开发人员来说,任何程 ...
相关推荐
Java 的守护线程什么是Java的守护线程( Daemon Thread )?守护线程的区别?守护线程的作用?守护线程如何创建?守护线程如何判断?守护线程使用的注意事项总结 什么是Java的守护线程( Daemon Thread )? Java 提供...
std::thread daemonThread(monitorTargetProgram); // 确保主程序不立即结束 while (true) { std::this_thread::sleep_for(std::chrono::hours(24)); } return 0; } ``` 请注意,实际应用中可能需要处理更...
在Java编程语言中,守护线程(Daemon Thread)被称为“变形金刚中的守护神”,这是因为它们在后台默默地工作,为应用程序提供必要的服务,而不会阻止程序的退出。理解并正确使用守护线程是Java多线程编程中的一个...
在Java中,一个线程被标记为守护线程(Daemon Thread)后,它不会阻止Java虚拟机(JVM)的退出。正常情况下,JVM会在所有非守护线程结束后退出。但如果存在守护线程,即使没有其他非守护线程,JVM也会继续运行,直到...
在Java中,有两类线程:UserThread(用户线程)和Daemon Thread(守护线程)。守护线程的作用是为其他线程的运行提供服务,比如说GC线程。它们的本质上来说没有区别,唯一的区别之处就在虚拟机的离开:如果User ...
在Java编程中,守护线程(Daemon Thread)是一种特殊的线程类型,它的主要作用是为应用程序提供后台服务,而不会阻止程序的退出。当所有的非守护线程(用户线程)结束时,JVM会自动关闭守护线程并退出。在本项目...
Java 中有两类线程:User Thread(用户线程)和 Daemon Thread(守护线程)。用户线程即运行在前台的线程,而守护线程是运行在后台的线程。守护线程的作用是为其他前台线程的运行提供便利服务,而且仅在普通、非守护...
Java中的线程可以分为守护线程(DaemonThread)和用户线程(UserThread)两类。守护线程和用户线程的唯一区别是它们对虚拟机的退出(程序的终止)的影响。 当JVM中只有守护线程时,虚拟机会退出,程序终止;而当JVM中至少...
Java中的守护线程(Daemon Thread)是Java虚拟机(JVM)的一种特殊线程类型,它们在后台执行任务,主要用于为应用程序的其他非守护线程提供服务。守护线程的一个典型例子是垃圾回收器(Garbage Collector),它默默...
在Java中,线程分为两种类型:用户线程(User Thread)和守护线程(Daemon Thread)。这两种线程在大部分行为上是相同的,但它们在决定虚拟机何时退出时有显著差异。 用户线程是程序的主要部分,Java虚拟机(JVM)...
浅谈java中守护线程与用户线程 本篇文章主要介绍了java中守护线程与用户线程的概念和区别。Java中的线程可以分为两类,即daemon线程(守护线程)和User线程(用户线程)。守护线程是一种特殊的线程,它们的生命周期...
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 作用 Daemon的作用是为其他线程的运行提供便利服务,守护线程典型的应用是 GC (垃圾回收器),它是一个很称职的守护者。 区别 ...
在这个例子中,`daemonThread`是守护线程,`main`线程是非守护线程。如果`main`线程结束而`daemonThread`仍在运行,JVM仍会继续运行直到`daemonThread`完成。反之,如果`daemonThread`还在运行,但所有非守护线程...
同时,创建了一个守护线程"DaemonThread",并将其设置为守护线程,然后输出所有线程的信息,最后主线程等待5秒后退出。 通过这样的实验,我们可以观察到: - 用户线程"NormalThread"会阻止JVM的立即退出,即使守护...
Python中的守护进程(daemon process)、守护线程(daemon thread)以及如何实现守护和非守护的并行处理是多任务编程中的重要概念。在Python中,这些功能主要通过`multiprocessing`和`threading`模块来实现。 守护...
在Android中,我们可以通过设置Thread的daemon属性将其转换为守护线程。 2. **保活策略**: - **双进程保活**:创建一个辅助进程,将关键服务运行在这个进程中。这样即使主进程被系统回收,辅助进程仍然可以存活,...
在这段代码中,`daemonThread`被设置为守护线程,当其他非守护线程结束时,JVM会继续运行该线程直到其完成任务。 守护线程通常用于执行一些后台任务,如资源清理、日志记录、定时任务等。由于它们在所有非守护线程...
Java守护线程实例详解 Java中的线程可以分为两类:User Thread(用户线程)和Daemon Thread(守护线程)。在Java中,Daemon Thread是一种特殊的线程,它的主要作用是为其他线程的运行提供便利服务。守护线程的特点...
守护线程与普通线程的主要区别在于,当JVM中没有非守护线程(用户线程)在运行时,JVM会自动退出,即使仍有守护线程在工作。这使得守护线程常用于提供系统级的服务,例如垃圾回收(Garbage Collection)、内存管理等...
在Python编程中,线程是并发执行任务的基本单位,而守护线程(Daemon Thread)是一种特殊类型的线程,它的主要特点是当所有非守护线程结束时,即使守护线程还在运行,Python解释器也会强制退出。了解并正确使用守护...