社区
Java SE
帖子详情
守护线程有什么用?
fxbird
2006-01-15 12:51:38
不就是系统执行完之后,如果全是守护线程,就终止它,如果是非守护线程,应用程序仍可以执行吗,具体有什么用呢。
...全文
12682
26
打赏
收藏
守护线程有什么用?
不就是系统执行完之后,如果全是守护线程,就终止它,如果是非守护线程,应用程序仍可以执行吗,具体有什么用呢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CS_Mercy
2010-06-11
打赏
举报
回复
ChDw 你很爷们。其实你讲的挺好。
Octer
2006-01-18
打赏
举报
回复
to ChDw(米):
佩服老兄的耐心,呵呵
llihua
2006-01-18
打赏
举报
回复
觉得ChDw(米)讲得挺清楚吧
有时候多种技术之间怎么取舍,还要看逻辑。
shenpipi
2006-01-17
打赏
举报
回复
Unix下你加&在命令的最后就行了?
这点不同意,而且还有很多问题.
加了&,只是放后台执行而已,控制台没有释放.
而且,作为一个后台进行,怎么去结束?不能每次都kill吧?
服务程序总要有点服务程序的样子,要不然unix下面也不会费那么大劲做一个daemon来了.
ChDw
2006-01-17
打赏
举报
回复
有这样的必要吗?在Windows中,你可以运行javaw来达到释放控制台的目的,在Unix下你加&在命令的最后就行了。所以守护进程并非一定需要的。
况且很多程序都是专门写一个服务程序来达到机器启动时启动的,并不需要Java本身实现
shenpipi
2006-01-17
打赏
举报
回复
其实java里面的daemon和linux里面的daemon有很大区别的.linux下面的daemon能够释放控制台,后台运行,java里面的daemon线程就是楼上各位所说的了,只是如果jvm中所有的非daemon线程结束的时候,jvm就退出.
俺原来以为java中的daemon线程可以作到linux中daemon一样的功能,结果不是.java什么时候能实现linux下的daemon那样的操作啊?连dos下面都有内存驻留程序.
ChDw
2006-01-17
打赏
举报
回复
难道我如此失败,说了这么久你还是不懂?
守护线程的唯一用途就是告诉JVM不需要等待它退出,当JVM中所有的线程都是守护线程的时候就可以正常的退出了
普通线程不一样,JVM必须等待它的退出才可以正常的退出。
fxbird
2006-01-17
打赏
举报
回复
up
ChDw
2006-01-17
打赏
举报
回复
具体怎么用当然是你自己的应用决定的,这个根本就没有什么谱
如果这个线程的结果是一定要等待的(如写数据文件,计算逻辑等),如果是后台的垃圾回收这种当然就是守护线程。
或许我的语文不太好,但是觉得后面的问题是你根本没有问清楚,我觉得问清楚问题是更重要的学问!
如果你直接问它的应用范围,我想这个应该是更清楚的表达吧!
shenpipi
2006-01-17
打赏
举报
回复
ChDw(米) ,来继续锻炼你的表达能力,这对于一个从事软件行业的人可是很重要的哦.
fxbird
2006-01-17
打赏
举报
回复
to ChDw:
看来你得好好学习语文了,我有必要把问题掰开了揉碎了问,我的意思是说,非守护线程这个特性具体应用在什么地方。难道非守护线程就不能替代它?
挑大梁
2006-01-17
打赏
举报
回复
学习
ChDw
2006-01-17
打赏
举报
回复
唉,看起来还是我没有说清楚。
JVM会等待所有非守护线程退出以后才会退出!
public static void main(String[] args) {
new MyThread().start();
//如果MyThread不是守护线程,那么JVM必须等待MyThread退出了才会退出
//并不是退出main函数就已经表示JVM可以结束!
}
shenpipi
2006-01-17
打赏
举报
回复
如果主线程执行完以后,还有其他非守护线程,程序是不会退出的.
fxbird
2006-01-17
打赏
举报
回复
to ChDw:
我明白你说的意思,但你没有明白我的意思,我是说,非守护线程有什么用?
紫炎圣骑
2006-01-16
打赏
举报
回复
学习。。。
ChDw
2006-01-16
打赏
举报
回复
public static void main 是在一个非守护线程中运行的,但是JVM中并不一定只有这个非守护线程,你可以在程序中启动多个非守护线程,JVM同样也会等待它们的退出。所以并非主线程(运行main方法的线程)退出就一定退出JVM。
ChDw
2006-01-16
打赏
举报
回复
上面说得不对
守护线程与普通线程的唯一区别是:当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;如果还有一个或以上的非守护线程则不会退出。(以上是针对正常退出,调用System.exit则必定会退出)
所以setDeamon(true)的唯一意义就是告诉JVM不需要等待它退出,让JVM喜欢什么退出就退出吧,不用管它。
无论是什么线程,都一定会分时间片执行的,和上面的检测拼写及输入并没有任何关系
fxbird
2006-01-16
打赏
举报
回复
leniz好像讲得比较明确,但不知对不对,其它人在讲它的作用,等于没讲一样,我问的是原理
cuilichen
2006-01-16
打赏
举报
回复
他是一个监工...
加载更多回复(6)
Java
守护线程
,看这篇文章就对了! ( Daemon Thread )
Java 的
守护线程
Java
守护线程
,看这篇文章就对了!Java 的
守护线程
什么是Java的
守护线程
( Daemon Thread )?
守护线程
的区别?
守护线程
的作用?
守护线程
如何创建?
守护线程
如何判断?
守护线程
使用的注意事项总结 什么是Java的
守护线程
( Daemon Thread )? Java 提供了两种类型的线程:
守护线程
和 用户线程 用户线程 (User Thread) 是高优先级线程。JVM 会在终止之前等待任何用户线程完成其任务。
守护线程
(Daemon Thread) 是低优先级线程。其唯一作用是为用户线程提供服务。 举个例子: 任何一个
守护线程
都是整个JVM
JAVA最新面试资料-备战2023金三银四
包含并不限于: 1、大厂Java面试题 2、HR面试100问 3、大厂面经 4、Java开发手册 资料内举例: 1、在 java 中
守护线程
和本地线程区别? java 中的线程分为两种:
守护线程
(Daemon)和用户线程(User)。任 何线程都可以设置为
守护线程
和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为
守护线程
,反之则为用户线程。 Thread.setDaemon()必须在 Thread.start()之前调用,否则运行时会抛出异常。 两者的区别: 唯一的区别是判断虚拟机(JVM)何时离开,Daemon 是为其他线程提供服务,如果全 部的 User Thread 已经撤离,Daemon 没有可服务的线程,JVM 撤离。也可以理解 为
守护线程
是 JVM 自动创建的线程(但不一定),用户线程是程序创建的线程; 比如 JVM 的垃圾回收线程是一个
守护线程
,当所有线程已经撤离, 不再产生垃 圾,
守护线程
自然就没事可干了,当垃圾回收线程是 Java 虚拟机上仅剩的线 程时,Java 虚拟机会自动离开。 扩展:Thread Dump 打印出
守护线程
是什么?
守护线程
和非
守护线程
的区别是?
守护线程
的作用是?
**
守护线程
**是区别于用户线程哈,**用户线程**即我们手动创建的线程,而
守护线程
是程序运行的时候在后台提供一种**通用服务的线程**。垃圾回收线程就是典型的
守护线程
。
用户线程和
守护线程
有什么区别?
守护线程
都是为JVM中所有非
守护线程
的运行提供便利服务: 只要当前JVM实例中尚存在任何一个非守 护线程没有结束,
守护线程
就全部工作;只有当最后一个非
守护线程
结束时,
守护线程
随着JVM一同结 束工作。 User和Daemon两者几乎没有区别,唯一的不同之处就在于虚拟机的离开:如果 User Thread已经全部 退出运行了,只剩下Daemon Thread存在了,虚拟机也就退出了。 因为没有了被守护者,Daemon也就没有工作可做了,也就没有继续运行程序的必要了。 ...
多线程:
守护线程
有什么样的作用?
看字面意思,大多数新手认为
守护线程
的意思是守护好别的线程,不让他们结束。 实际的意思是把一个线程标记为“
守护线程
”,就是当他是一个“后台线程”or“内部线程”,类似于管理内存垃圾回收的线程一样。 Java程序入口就是由JVM启动main线程,main线程又可以启动其他线程。当所有线程都运行结束时,JVM退出,进程结束。 如果有一个线程没有退出,JVM进程就不会退出。所以,必须保证所有线程都能及时结束。 但是有一种线程的目的就是无限循环,例如,一个定时触发任务的线程: class TimerThread ex
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章