User Tread和Deamon Tread
来源:互联网 发布:arm linux gcc java 编辑:程序博客网 时间:2024/04/27 21:52
Deamon Tread又称“后台线程”、“精灵线程”,相对应的,User Tread可以成为“用户线程”、“前台线程”。在整理JVM时提到JVM的垃圾回收机制实质上就是一个典型的Deamon Tread,那么Deamon Tread又是怎么样的呢?
java 线程可以分为两种:User Tread和Deamon Tread。一般通过main()运行的都是User Tread,当User Tread执行完毕后,守护线程就会自动退出。守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。也就是说守护线程不依赖于终端,但是依赖于系统,与系统“同生共死”。一旦系统中不再有前台线程,那么后台线程就会自动退出。就JVM的垃圾回收线程来说,当我们的程序中不再有任何运行中的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是Java虚拟机上仅剩的线程时,Java虚拟机会自动离开。它始终在低级别的状态中运行,用于实时监控和管理系统中的可回收资源。
我们可以用isDaemon方法将测试该线程是否为守护线程。setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,false为User模式。setDaemon(boolean on)方法必须在线程启动之前调用,当线程正在运行时调用会产生异常。值得一提的是,当你在一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程,用户线程同样。
- User Tread和Deamon Tread
- Tread
- Service 和 Tread 的区别?
- C++11 tread和锁
- Tread.Join()
- Servlet Tread tips
- Tread+delegate 操作UI
- Runnable&&Tread使用
- Tread类和Runnable类两种简单实现双线程
- [Java] Tread.sleep() 电子表显示时期和时间
- eclipse as android jni 和 ndk以及调用过程--tread
- Tread 的一些例子说明
- android 中的Tread 、Handler、Looper
- 实现Runnable的线程类和继承Tread的线程类之间的区别
- C#的多线程 / Multi-Tread of C#
- Java Tread多线程(2)多线程安全问题
- Java Tread多线程(3)死锁
- Java Tread多线程(0)一个简单的多线程实例
- PHP程序员面试题
- 更改ubuntu登陆界面
- GLIB: undefined reference to 'g_thread_init'
- xcode 编译产生的 ARC forbids explicit message send of release 错误
- Ext JS中的拖动技术
- User Tread和Deamon Tread
- 性能测试面面观——HP性能测试专家宗刚访谈
- Mongodb MapReduce示例1个
- 高效程序员秘籍(1):使用AutoHotKey快速切换窗口
- 构架高性能WEB网站的几点知识
- hdu1829并查集
- android.os.NetworkOnMainThreadException解决办法
- xhprof在php5.4.8下make错误 make: *** [xhprof.lo] Error 1的解决办法
- exp imp用法介绍