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

简介: 后台线程   public final void setDaemon(boolean on)   将该线程标记为守护线程或用户线程     对象名.setDaemon(true); // 设置守护线程     当正在运行的线程都是守护线程时,Java虚拟机退出。

后台线程
  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

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

 

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
Java
学习多线程之守护线程
学习多线程之守护线程
109 0
|
10月前
|
监控 Java 数据库连接
Java线程管理:守护线程与用户线程的区分与应用
在Java多线程编程中,线程可以分为守护线程(Daemon Thread)和用户线程(User Thread)。这两种线程在行为和用途上有着明显的区别,了解它们的差异对于编写高效、稳定的并发程序至关重要。
198 2
|
10月前
|
监控 Java 开发者
Java线程管理:守护线程与本地线程的深入剖析
在Java编程语言中,线程是程序执行的最小单元,它们可以并行执行以提高程序的效率和响应性。Java提供了两种特殊的线程类型:守护线程和本地线程。本文将深入探讨这两种线程的区别,并探讨它们在实际开发中的应用。
121 1
java线程之用户线程与守护线程
java线程之用户线程与守护线程
java线程之用户线程与守护线程
|
数据采集 安全 Java
Python的多线程,守护线程,线程安全
Python的多线程,守护线程,线程安全
133 2
|
监控 Java 测试技术
面试准备不充分,被Java守护线程干懵了,面试官主打一个东西没用但你得会
面试准备不充分,被Java守护线程干懵了,面试官主打一个东西没用但你得会
100 1
|
Java C++ Spring
谈谈springboot里面的守护线程与本地线程
【4月更文挑战第18天】在Spring Boot中,线程的概念同Java标准线程模型一致,即区分为守护线程和用户线程。Spring Boot本身并不直接提供创建守护线程或用户线程的特殊机制,但它允许你通过标准Java方式或者利用Spring的框架特性来管理这些线程
639 2
|
Java 调度
多线程的基本概念和实现方式,线程的调度,守护线程、礼让线程、插入线程
多线程的基本概念和实现方式,线程的调度,守护线程、礼让线程、插入线程
150 0
|
监控 网络协议 Linux
守护线程
守护线程
118 0
|
Java 数据安全/隐私保护 块存储
多线程与并发编程【守护线程、线程同步】(三)-全面详解(学习总结---从入门到深化)
多线程与并发编程【守护线程、线程同步】(三)-全面详解(学习总结---从入门到深化)
183 1