谁来给我讲讲java的守护线程是怎么一回事?100分相赠

Rock_Guan 2003-08-22 09:50:42
守护线程是怎么一回事,与普通的用户进程有什么区别?
...全文
224 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinxinduyu 2003-08-22
  • 打赏
  • 举报
回复
守护线程不过是为其他线程提供服务的一种线程,除此之外没有其他的特别功能。如果一个程序的线程都是守护线程,那么该程序便没有运行的必要,该程序便推出。比如说,负责垃圾回收的线程就是守护线程(好像是这么回事吧)
Rock_Guan 2003-08-22
  • 打赏
  • 举报
回复
知道了,GC的线程 --Garbage Collector,谢过各位
Rock_Guan 2003-08-22
  • 打赏
  • 举报
回复
不好意思, star821116(冰冻三尺非一日之寒) 本人菜鸟,GC的线程是什么???
star821116 2003-08-22
  • 打赏
  • 举报
回复
很少有在程序中用到的时候,GC的线程就是一个Daemon的例子
Rock_Guan 2003-08-22
  • 打赏
  • 举报
回复
我想问的是守护线程用来做什么用,请举一个例子!!谢谢
jackshow 2003-08-22
  • 打赏
  • 举报
回复
所谓 daemon线程,就是一种“在背景提供通用性服务”的线程,它并不属于程序本体。因此,当所有non-daemon线程结束生命,程序也就终止了。如果有任何non-daemon线程还在执行,程序(也就是main()的那个线程)就不能终止。
star821116 2003-08-22
  • 打赏
  • 举报
回复
守护线程在很多方面都和用户线程一样,有优先级,有相同的方法,通过同样的状态转换.在程序运行过程中,Daemon和用户线程的行为是一样.当一个用户线程结束过后,JVM才检察系统中的线程是否是Daemon,如果是用户线程,则继续调度,如果仅剩下Daemon,JVM就会退出,程序也会中止.比较典型的守护线程是GC线程.
不过,用户线程和Daemon之间的区别的确不是很清晰,虽然一般而言,Daemon是用来对用户线程提供服务的,但Daemon完成这种关键服务的时间有可能比提出要求的用户线程的生命期要长.
deniswang 2003-08-22
  • 打赏
  • 举报
回复
daemon thread存在的价值就是在后台为它的前台线程提供“通用性服务”。它有一个主要特性:它不属于程序的本体。

如果在main线程中你调用了用户线程,并且用户线程未在卖弄线程之前中止,那么即使main线程死了,程序也会继续运行下去。因为只有等所有的用户线程中止后,程序才能停止。
可daemon不同,由于它不是程序的本体,你可以把它理解为程序主体的寄生物,默默的在后面关注main线程,当main线程停止时,它自然也无法存在,消亡了。

呵呵,这么说不知道还清不清楚?只是我个人理解,不知道是不是完全正确。欢迎板砖~~~

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧