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退出而结束. 示例代 ...
随机推荐
- Adobe CC Family 2015 Master 或 Adobe CC Family 2017 Master的安装步骤(图文详解)
不多说,直接上干货! 你还在为安装PS烦恼吗?你还在为制作视频软件寻找烦恼吗?..... 前言 现在,已经出来了 简单了解, Adobe Acrobat的百度百科: http://baike.ba ...
- NLP 装桶(Bucketing)和填充(padding)
翻译模型也是用了装桶(bucketing)和填充(padding),这两种方法是用于高效地处理不同长度句子的情况.我们首先来弄清楚是怎么一回事.当我们从英语翻译成法语的时候,假设我们的输入英语的长度为 ...
- php的一个验证邮箱的正则表达式
/([a-z0-9]*[-_\.]*[a-z0-9]+)*[-_\.]*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.]([a-z0-9]{2,3}|[a-z0-9]*[-_]?[a-z ...
- HTML&&css面试题
HTML&css相关问题 1.XHTML和HTML有什么区别 HTML是一种基本的WEB网页设计语言,XHTML是一个基于XMl的置标语言 最主要的不同 XHTML元素必须被正确地嵌套. XH ...
- IDEA在当前类中查找方法快捷键--转
https://blog.csdn.net/weixin_40739833/article/details/81298472 IDEA工具是当前类中查找一个方法快捷键: Ctrl + F12 例如在 ...
- 学习ThinkPHP笔记
学习ThinkPHP笔记 TP的模块化设计 名称 描述 应用 基于同一个入口文件访问的项目我们称之为一个应用. 模块 一个应用下面可以包含多个模块,每个模块在应用目录下面都是一个独立的子目录. 控制器 ...
- c# winform项目用到的部分知识点总结
项目用到的知识点总结,欢迎大家吐槽: /// <summary> /// 转换非yyyy-MM-dd的字符串为DateTime类型 /// </summary> public ...
- NSDictionary 和NSArray 排序(sort)
排序: NSMutableDictionary *dic=[[NSMutableDictionary alloc]init]; [dic setValue:@"第3个" forKe ...
- hdu 1401
Solitaire Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- IDEA 中将已有项目放到 GitHub 上去
前言:公司用的都是 idea+svn 来管理代码,所以家里尝试一下 idea+github 来管理.我的本地仓库是配置过ssh key,所以此处没有再次配置ssh key,如需配置可以参考 https ...