线程的控制之守护线程_坦克大战帮助理解

后台线程   public final void setDaemon(boolean on)   将该线程标记为守护线程用户线程 对象名.setDaemon(true); // 设置守护线程 当正在运行的线程都是守护线程时,Java虚拟机退出。该方法必须在启动线程前调用。

坦克大战帮助理解守护线程,如下图所示:

示例代码如下:

 1 package cn.itcast_04;
 2 
 3 /*
 4  * 后台线程
 5  *         public final void setDaemon(boolean on)   将该线程标记为守护线程或用户线程。
 6  *             当正在运行的线程都是守护线程时,Java虚拟机退出。 该方法必须在启动线程前调用。 
 7  * 
 8  * 帮助理解的守护线程的案例
 9  *         游戏:坦克大战。
10  */
11 public class ThreadDaemonDemo {
12     public static void main(String[] args) {
13         ThreadDaemon td1 = new ThreadDaemon();
14         ThreadDaemon td2 = new ThreadDaemon();
15 
16         td1.setName("关羽");
17         td2.setName("张飞");
18 
19         // 设置守护线程,在启动线程前
20         td1.setDaemon(true);
21         td2.setDaemon(true);
22 
23         td1.start();
24         td2.start();
25 
26         Thread.currentThread().setName("刘备");
27         for (int x = 0; x < 5; x++) {
28             System.out.println(Thread.currentThread().getName() + ":" + x);
29         }
30     }
31 }
 1 package cn.itcast_04;
 2 
 3 public class ThreadDaemon extends Thread {
 4     @Override
 5     public void run() {
 6         for (int x = 0; x < 100; x++) {
 7             System.out.println(getName() + ":" + x);
 8         }
 9     }
10 }
程序运行的结果为:
(一种运行情况)

刘备:0
刘备:1
刘备:2
刘备:3
刘备:4
张飞:0
张飞:1
张飞:2
张飞:3
张飞:4
张飞:5
张飞:6
张飞:7
张飞:8

解释:刘备这个线程结束了(刘备阵亡了),关羽和张飞的线程也会立马结束,但是就算立马结束也需要一些时间缓冲!(即关羽和张飞抹脖子后也得抽搐几下才真正死了啊)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DannyHoo的专栏

POST上传各种数据类型(包括图片)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

75820
来自专栏Scott_Mr 个人专栏

两个App之间调起通信

11410
来自专栏非典型技术宅

iOS四大对象之AppDelegate及UIApplicationMain函数/程序启动过程1. AppDelegate应用程序代理2. UIApplicationMain函数/程序启动过程

15950
来自专栏谈补锅

UIApplication

1、UIApplication对象是应用程序的象征,每一个应用都有自己的UIApplication对象,而且是单列的

13630
来自专栏xx_Cc的学习总结专栏

iOS-UIWindow详解

34340
来自专栏Scott_Mr 个人专栏

两个App之间调起通信

39280
来自专栏xx_Cc的学习总结专栏

iOS-UIApplication详解iOS-UIApplication详解

33370
来自专栏君赏技术博客

【已解决】Xcode在StoryBoard设置UIView的控件类是Cocoapods的类,运行还是UIView?

ZHVerifyCodeFiled作为我写在Cocoapods的空间,现在我在测试例子的Main.storyboard直接添加一个UIView使用我们Cocoa...

18320
来自专栏一“技”之长

Swift学习第二练——Swift项目时光电影

    很早以前的一个OC的练习项目,用swift重新写了一遍,因为xcode版本的更新对swift的兼容度也在不断改变,此版本适用于xcode6.1。

10350
来自专栏Guangdong Qi

iOS 9 UIWebView不能加载百度和控制电池条字体颜色

今天写了一个UIWebView给H5的妹子测试,本来很简单的东西,不应该出错的,但是还是有错,而且还是两个

9620

扫码关注云+社区

领取腾讯云代金券