博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程之守护线程
阅读量:3947 次
发布时间:2019-05-24

本文共 1084 字,大约阅读时间需要 3 分钟。

守护线程 daemon

  • 线程分为用户线程和守护线程
  • 虚拟机必须确保用户线程执行完毕
  • 虚拟机不用等待守护线程执行完毕
  • 如.后台记录操作日期,监控内存,垃圾回收等待等等

下面通过代码来演示一下守护线程

package org.javaboy;/** * @Author: bai * @DateTime: 2020/6/7 19:06 */// 测试守护线程public class TestDaemon {
public static void main(String[] args) {
God god = new God(); You you = new You(); Thread thread = new Thread(god); thread.setDaemon(true); // 默认是false,表示是用户线程,正常的线程都是用户线程 thread.start(); // 上帝守护着你 new Thread(you).start(); // 用户线程启动 }}// 上帝class God implements Runnable {
@Override public void run() {
while (true) {
System.out.println("上帝守护着你!"); } }}// 用户class You implements Runnable {
@Override public void run() {
for (int i = 0; i < 36500; i++) {
System.out.println("你一生都开心的活着!"); } System.out.println("=====goodbye,world!====="); }}

代码解释:首先模拟God类是上帝,上帝作为守护线程守护着 You,而 You 负责开心的活着,做自己的事情。

在主线程中通过 thread.setDaemon(true) 方法将 God 作为守护线程,此方法默认是 false,表示是用户线程,正常的线程都是用户线程。

总结

最后通过运行结果可以得知:虚拟机不用等待守护线程执行完毕 这里的守护线程就是 God 类。

转载地址:http://vvqwi.baihongyu.com/

你可能感兴趣的文章
kvm&xen挂载镜像文件
查看>>
SQL Server Union等操作时解决不同数据库字符集冲突的问题
查看>>
Linq GroupJoin(二)
查看>>
递归:访问页面的控件或文件夹的下文件
查看>>
DataGridView分頁控件
查看>>
Linq 使用entity framework查询视图返回重复记录的问题(转)
查看>>
项目中得到执行文件版本或其它信息
查看>>
WinForm DatagridView绑定大量数据卡顿的问题
查看>>
DataGridView或 DataTable导出到excel
查看>>
Ilist To DataTable
查看>>
SQL @@IDENTITY, IDENT_CURRENT,SCOPE_IDENTITY
查看>>
簡單工廠模式
查看>>
SQL Server的數據類型
查看>>
php的正则表达式&nbsp;&#039;/\b\w…
查看>>
ThinkPHP的标签制作及标签调用解析…
查看>>
thrift的lua实现
查看>>
编写高性能的Lua代码
查看>>
Python正则表达式指南
查看>>
LUA--thrift--lib库的创建生成
查看>>
Shell开启扩展模式匹配shopt -s extglob
查看>>