什么是后台(守护)线程?
2015-07-17 16:22
204 查看
所谓的后台(daemon)线程,也叫守护线程,是指程序在运行的时候,在后台提供一种通用服务的线程(例如:守护线程GC),并且,这种线程并不属于程序中不可或缺的部分;因此当所有的非后台线程结束时,程序也就终止了,同时杀死所有的后台线程。相反,只要有任何非后台线程(例如:非守护线程main())还存在,程序就不会终止。后台线程具有最低的优先级。
setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,默认(false)为User模式。setDaemon(boolean on)方法必须在线程启动(start())之前调用,当线程正在运行时调用会产生异常。
isDaemon方法将测试该线程是否为守护线程。注意:当你在一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程,用户线程同样。
守护线程与普通线程的唯一区别是:守护线程就是main同生共死,当main退出,它将终止,而普通线程是在任务执行结束才停止。
普通线程代码:
View Code
此时,进入主线程,创建了一个线程,随后将它设置为后台线程,并调用start()方法,使子线程就绪,但此时,程序中没有任何非后台线程,所以,主线程可以结束,程序也会停止。
setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,默认(false)为User模式。setDaemon(boolean on)方法必须在线程启动(start())之前调用,当线程正在运行时调用会产生异常。
isDaemon方法将测试该线程是否为守护线程。注意:当你在一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程,用户线程同样。
守护线程与普通线程的唯一区别是:守护线程就是main同生共死,当main退出,它将终止,而普通线程是在任务执行结束才停止。
普通线程代码:
View Code
此时,进入主线程,创建了一个线程,随后将它设置为后台线程,并调用start()方法,使子线程就绪,但此时,程序中没有任何非后台线程,所以,主线程可以结束,程序也会停止。
相关文章推荐
- Crossing River
- 【JavaScript 12—应用总结】:弹出登录框
- Linux学习-12-学习ACL的使用-1
- Linux学习-11-学习Linux 账号管理
- 如何在tabBar上显示 提示小红点标记(badge)
- 【JavaScript 12—应用总结】:弹出登录框
- 表单使用get提交,问号传值问题
- 开源的一些感想
- Spring注解@Component、@Repository、@Service、@Controller区别
- [译]用R语言做挖掘数据《二》
- GetTextMetrics
- 大学的意义——施一公在生命科学学院2015年毕业典礼上的讲话
- 【socket】一分钟理清 socket udpsocket tcpsocket tcplistener TCPClient和 UDPClient
- java 判断浏览器类型
- 使用Mysql命令一次性备份多个数据库(所有数据库)
- localtime死锁——多线程下fork子进程
- cocos2d-x物业现场
- 手机分辨率
- 【C/C++】知识点
- hadoop中的调度器总结