在JAVA中线程分为用户线程和守护线程. 用户线程会阻止 JVM的正常停止, 而守护线程不会.
所有守护线程一般用于重要性不是很高的任务, 如JVM的GC线程就是守护线程.
使用JAVA Thread类的setDameon(true)即可设置为守护线程
public class DaemonThread { public static void main(String[] args) { Thread t = new Thread(){ @Override public void run() { System.out.println("线程working, 并休息20秒"); try { Thread.sleep(1000 * 20); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程finish"); } }; t.setDaemon(true);//设置为守护线程, 不设置默认为用户线程 t.start(); } }
执行如下:
线程working, 并休息20秒
可见JVM MAIN线程直接退出了.
下面看一下用户线程的效果
将t.setDaemon这行代码注释即可, 运行结果如下:
线程working, 并休息20秒 线程finish
证明了用户线程会阻止 JVM的正常停止
相关推荐
java并发编程-超级大全整理
阿里专家级并发编程架构师级课程,完成课程的学习可以帮助同学们解决非常多的JAVA并发编程疑难杂症,极大的提高JAVA并发编程的效率。课程内容包括了JAVA手写线程池,UC线程池API详解,线程安全根因详解,锁与原子类...
java并发编程pdf文档第二部分:Java并发编程实战.pdf、Java多线程编程核心技术.pdf、实战Java高并发程序设计.pdf
并发编程不仅包括多线程,还包括了处理多个独立任务的各种技术和模式,如进程、协程、分布式编程等。并发编程的目标是实现任务的并发执行,以提高系统的性能和资源利用率。 因此,多线程是并发编程的一部分。多线程...
Java并发编程实践多线程,讲得很细,应该会对你有帮助
深入讲解java并发编程技术,多线程、锁以及java内存模型等
详细的讲述了多线程的各种用法 Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠...
Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java线程:新特征-锁(下) ...
读书笔记-Java并发编程实战-基础篇
Java并发编程实践--电子书.rarJava并发编程实践--电子书.rar
阿里专家级并发编程架构师级课程,完成课程的学习可以帮助同学们解决非常多的JAVA并发编程疑难杂症,极大的提高JAVA并发编程的效率。课程内容包括了JAVA手写线程池,UC线程池API详解,线程安全根因详解,锁与原子类...
线程安全就是对共享的、可变的状态进行管理,对象的状态就是它的数据,换句话说就是在不可控制的并发访问中保护数据。
java线程与并发编程是java并发编程的盛典,绝对高清版
大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。 注:本文档根据http://www.importnew.com/12773.html 和...
这篇指南主要是为帮助java多线程开发人员理解并发的核心概念以及如何应用这些理念。本文的主题是关于具有java语言风格的Thread、synchronized、volatile,以及J2SE5中新增的概念,如锁(Lock)、原子性(Atomics)、并发...
第1章 简介 1.1 并发简史 1.2 线程的优势 1.2.1 发挥多处理器的强大能力 1.2.2 建模的简单性 1.2.3 异步事件的简化处理 1.2.4 响应更灵敏的用户界面 1.3 线程带来的风险 1.3.1 安全性问题 1.3.2 活跃性...
学习并发编程自己总结的知识,非常实用。JAVA学习并发编程的精华
13-Java并发编程学习宝典.zip