守护线程
java中有两类线程,用户线程(User Thread)和守护线程(Daemon Thread)。
守护线程是指:
- 在程序运行的后台提供一种通用服务,并不是程序中不可或缺的一部分
- 当所有的用户线程结束时,jvm直接退出,同时会杀死进程中的守护线程
用户线程和守护线程的区别
用户线程比较重要,只要还有用户线程,jvm就不能退出。
守护线程是在后面提供服务的,如果用户线程没了,守护线程就会被jvm杀掉,然后jvm退出
线程转换
Thread.setDaemon(true)
注意事项:
- 必须在线程
start()
之前设置,如果线程跑起来了再设,会抛异常 - Daemon线程中开出来的线程也是Daemon线程
- 守护线程不应该被使用去访问故有资源【数据库/文件等】,因为它容易发生中断
网友评论