java笔记--守护线程的应用
守护线程的应用
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笔记--守护线程的应用的更多相关文章
- Java中守护线程的总结 thread.setDaemon(true)
https://www.cnblogs.com/ziq711/p/8228255.html 在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用个比较 ...
- Java中守护线程的总结
在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆: 只要当前JVM实例中尚存 ...
- Java Daemon 守护线程
Java中可以通过Thread或ThreadGroup的setDaemon方法将线程设置为守护线程 当所有非守护线程退出后 守护线程将被杀死不在运行 .Net中可以通过设置IsBackground属性 ...
- java的守护线程与非守护线程
最近重新研究Java基础知识,发现以前太多知识知识略略带过了,比较说Java的线程机制,在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) ,(PS:以 ...
- java中守护线程的一些概念和用法
网上的资料中,守护线程的功能一般都是“只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最后一个非守护线程结束是,守护线程随着JVM一同结束工作,Daemon作用是为其他线 ...
- [Java基础] java的守护线程与非守护线程
最近重新研究Java基础知识,发现以前太多知识知识略略带过了,比较说Java的线程机制,在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) ,(PS:以 ...
- 在 java 中守护线程和本地线程区别?
java 中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(bool on):true 则把该线程 ...
- java笔记--使用线程池优化多线程编程
使用线程池优化多线程编程 认识线程池 在Java中,所有的对象都是需要通过new操作符来创建的,如果创建大量短生命周期的对象,将会使得整个程序的性能非常的低下.这种时候就需要用到了池的技术,比如数据库 ...
- JAVA 对守护线程的理解
1.在start之前,setDaemon. 该现场就成为守护线程了. 2.守护现线程并不是主线程结束,子线程(守护线程)也跟着结束.而是守护线程在没有用户线程运行的情况伴随着JVM退出而结束. 示例代 ...
随机推荐
- Android 开发工具类 28_sendGETRequest
以 GET 方式上传数据,小于 2K,且安全性要求不高的情况下. package com.wangjialin.internet.userInformation.service; import jav ...
- GRU
GRU模型(比LSTM减少了计算量) LSTM的模型,LSTM的重复网络模块的结构很复杂,它实现了三个门计算,即遗忘门.输入门和输出门. 而GRU模型如下,它只有两个门了,分别为更新门和重置门,即图中 ...
- java.lang.ArithmeticException: Rounding necessary
这个错误就是精度丢失问题 https://blog.csdn.net/qq496013218/article/details/70792655
- 虚拟化明星——深挖轻量级容器docker
docker是一个轻量级容器,属于操作系统层面的虚拟化技术,封装了文件系统(AUFS)以及网络互联,进程隔离等特性. 传统虚拟化架构: docker虚拟化架构: 可以看出,docker是没有Guest ...
- 玩转mongodb(一):初识mongodb
简介: MongoDB是一个开源的文档数据库,支持高性能.高可用性.自动缩放. 在MongoDB中,一条记录就是一个文档,是由字段和值对构成一个数据结构,类似于JSON对象.字段的值可以包括其他文档. ...
- ASP.NET Core 中的 ORM 之 Entity Framework
目录 EF Core 简介 使用 EF Core(Code First) EF Core 中的一些常用知识点 实体建模 实体关系 种子数据 并发管理 执行 SQL 语句和存储过程 延迟加载和预先加载 ...
- linux 查找删除找定文件
find . -name "*.lastUpdated" -exec rm -rf {} \; 这个命令是find的基本用法,可以分两部分,find ~/ -name " ...
- java面试④数据库部分
2.3.1 数据库的分类及常用的数据库 数据库分为:关系型数据库和非关系型数据库 关系数据库:mysql,oracle,sqlServer 非关系型:redis,mongoDB 2.3.2 简单介绍一 ...
- VUE脚手架,babel转码 常用命令
vue-cli脚手架,单页面应用初始化时 npm -v 查看npm版本号 npm install vue-cli -g 全局安装vue-cli vue -V查看vue版本号,说明vue-cli已经安 ...
- JAVA 导出 Excel, 将Excel下载到本地
昨天说了如何将数据导出成 excel 的两种方式,今天完善一下将 java 导出(文件在服务器)并下载到本地 1. 触发导出 ajax 代码 $.ajax({ type: "POST&quo ...