守护线程的应用

Java中的线程可以分为两类,即用户线程和守护线程。
用户线程是为了完成任务,而守护线程是为其他线程服务

--如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3894292.html "谢谢--

守护线程的唯一用途是为其他线程提供服务。守护线程会随时中断,
因此不要在守护线程上使用需要释放资源的资源,如输入输出流,数据库连接等
所有的守护线程都是后台线程,如果虚拟机中只剩下守护线程,虚拟机就会退出

Thread类与守护线程相关方法:

isDaemon() : 测试一个线程是否为守护线程
setDaemon(boolean on) : 讲一个线程标记为守护线程或用户线程

代码实例:

package com.xhj.thread;

/**
* 守护线程的应用
*
* @author XIEHEJUN
*
*/
public class ModifyDaemonThread implements Runnable {

@Override
public void run() {
System.out.println("运行用户线程");
for (int i = 0; i < 5; i++) {
System.out.println("Thinking In Java 更新到版本" + i);
}
}

/**
* 利用内部类来建立守护线程
*
* @return
*/
public Thread daemon() {
class Timer implements Runnable {
@Override
public void run() {
System.out.println("运行守护线程");
long currentTime = System.currentTimeMillis();
long processTime = 0;
while (true) {
if (System.currentTimeMillis() - currentTime > processTime) {
processTime = System.currentTimeMillis() - currentTime;
System.out.println("线程运行时间为: " + processTime);
}
}
}
}
Thread daemonThread = new Thread(new Timer());
return daemonThread;
}

public static void main(String[] args) {
try {

Thread userThread = new Thread(new ModifyDaemonThread());
Thread daemonThread = new ModifyDaemonThread().daemon();
// 在执行用户线程之前,一定要先设置守护线程
daemonThread.setDaemon(true);
userThread.start();
daemonThread.start();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

java笔记--守护线程的应用的更多相关文章

  1. Java中守护线程的总结 thread.setDaemon(true)

    https://www.cnblogs.com/ziq711/p/8228255.html 在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用个比较 ...

  2. Java中守护线程的总结

    在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆: 只要当前JVM实例中尚存 ...

  3. Java Daemon 守护线程

    Java中可以通过Thread或ThreadGroup的setDaemon方法将线程设置为守护线程 当所有非守护线程退出后 守护线程将被杀死不在运行 .Net中可以通过设置IsBackground属性 ...

  4. java的守护线程与非守护线程

    最近重新研究Java基础知识,发现以前太多知识知识略略带过了,比较说Java的线程机制,在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) ,(PS:以 ...

  5. java中守护线程的一些概念和用法

    网上的资料中,守护线程的功能一般都是“只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最后一个非守护线程结束是,守护线程随着JVM一同结束工作,Daemon作用是为其他线 ...

  6. [Java基础] java的守护线程与非守护线程

    最近重新研究Java基础知识,发现以前太多知识知识略略带过了,比较说Java的线程机制,在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) ,(PS:以 ...

  7. 在 java 中守护线程和本地线程区别?

    java 中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(bool on):true 则把该线程 ...

  8. java笔记--使用线程池优化多线程编程

    使用线程池优化多线程编程 认识线程池 在Java中,所有的对象都是需要通过new操作符来创建的,如果创建大量短生命周期的对象,将会使得整个程序的性能非常的低下.这种时候就需要用到了池的技术,比如数据库 ...

  9. JAVA 对守护线程的理解

    1.在start之前,setDaemon. 该现场就成为守护线程了. 2.守护现线程并不是主线程结束,子线程(守护线程)也跟着结束.而是守护线程在没有用户线程运行的情况伴随着JVM退出而结束. 示例代 ...

随机推荐

  1. 【优化】如何检测移动端 CPU 以及内存占用率

    原文  http://taobaofed.org/blog/2015/12/04/cpu-allocation-profiler/ 前言 6 月底的时候淘宝众筹的 H5 接入到了支付宝钱包,上线前支付 ...

  2. ubuntu16.04 nginx安装

    .gcc.g++依赖库 apt-get install build-essential apt-get install libtool .安装 pcre依赖库(http://www.pcre.org/ ...

  3. ssh和ssh-copy-id以及批量多机无密码登陆详解

    本文主要围绕着ssh服务以及如何通过ssh-copy-id实现无密码登陆. 1. sshd 服务以及配置   2.ssh-copy-id命令的使用以及原理.3.批量多机互相信任. 1. sshd 服务 ...

  4. pcap简单使用和简单解释

    数据类型bpf_u_int32实际上就是u_int的一个别名,还有吧bpf_int32实际上就是int的别名.当然这个int是32位的,如果操作系统对int的定义不是4字节,bpf_int32就对应另 ...

  5. Nodejs学习笔记(十七)—浮点运算decimal.js

    前言 开发过程中免不了有浮点运算,JavaScript浮点运算的精度问题会带来一些困扰 JavaScript 只有一种数字类型 ( Number ) JavaScript采用 IEEE 754 标准双 ...

  6. es索引的RestHighLevelClient实现

    java代码: import java.io.IOException; import org.apache.http.HttpHost; import org.elasticsearch.action ...

  7. 【持续更新】一个简洁、易用的美赛LaTeX模板: easyMCM

    目录 1 当前美赛模板通行情况的概述 2 easymcm宏包说明 2.1 与mcmthesis的关系之说明 2.2 easymcm宏包的简介 2.3 美赛模板下载地址 3 常见问题的解决方案 若您无意 ...

  8. [转]javascript之Object.assign()痛点

    本文转自:http://blog.csdn.net/waiterwaiter/article/details/50267787 最近也一直会用javascript,然后中间使用的一些组件,如Echar ...

  9. js oop中的三种继承方法

    JS OOP 中的三种继承方法: 很多读者关于js opp的继承比较模糊,本文总结了oop中的三种继承方法,以助于读者进行区分. <继承使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方 ...

  10. Css3不透明

    Css3允许你使用opacity(不透明)属性设置元素的不透明度 实例: <img src="1.jpg" alt=“view”> img{ opacity:0.45: ...