For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
java编程开发是目前大多数程序员都在学习的一个编程开发语言,下面我们就通过案例分析来了解一下,java编程开发守护线程与用户线程的区别。
1.默认用户线程
Java语言中无论是线程还是线程池,默认都是用户线程,因此用户线程也被成为普通线程。
以线程为例,想要查看线程是否为守护线程只需通过调用isDaemon()方法查询即可,如果查询的值为false则表示不为守护线程,自然也就属于用户线程了。
2.主动修改为守护线程
守护线程(DaemonThread)也被称之为后台线程或服务线程,守护线程是为用户线程服务的,当程序中的用户线程全部执行结束之后,守护线程也会跟随结束。
守护线程的角色就像“服务员”,而用户线程的角色就像“顾客”,当“顾客”全部走了之后(全部执行结束),那“服务员”(守护线程)也就没有了存在的意义,所以当一个程序中的全部用户线程都结束执行之后,那么无论守护线程是否还在工作都会随着用户线程一块结束,整个程序也会随之结束运行。
3.守护线程与用户线程的区别
守护线程是为用户线程服务的,当一个程序中的所有用户线程都执行完成之后程序就会结束运行,程序结束运行时不会管守护线程是否正在运行,由此我们可以看出守护线程在Java体系中权重是比较低的。
4.守护线程注意事项
守护线程的使用需要注意以下三个问题:
守护线程的设置setDaemon(true)必须要放在线程的start()之前,否则程序会报错。
在守护线程中创建的所有子线程都是守护线程。
使用jojn()方法会等待一个线程执行完,无论此线程是用户线程还是守护线程。
5.守护线程应用场景
守护线程的应用场景就是垃圾回收线程,当然还有一些场景也非常适合使用守护线程,比如服务器端的健康检测功能,对于一个服务器来说健康检测功能属于非核心非主流的服务业务,像这种为了主要业务服务的业务功能就非常合适使用守护线程,当程序中的主要业务都执行完成之后,服务业务也会跟随者一起销毁。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。