java守护线程。
java的守护线程:具体定义我也不太清楚,百度和谷歌了看的也不是很明白,但是啊,下边有给出一个例子自己领悟吧。
一、计时器的Timer声明时是否声明为守护线程对计时器的影响。
/**
*
*/
package timer_test; import java.util.Date;
import java.util.Timer;
import java.util.TimerTask; /**
* @author 9082046**@qq.com
*
*/
public class TimerSchedule
{ /**
* @param args
*/
public static void main(String[] args)
{
long timestamp = System.currentTimeMillis();
Date date=new Date();
date.setTime(timestamp+2*1000);//计时器两秒后输出:2和时间戳。 Timer timer=new Timer(true);//是否设置成守护进程,true和false。
OneTask task=new OneTask();
System.out.println("1:"+timestamp);
timer.schedule(task, date); try
{
//如果取消主线程的睡眠,在守护线程设置成true时 2和时间戳的输出语句将不会被执行。
Thread.sleep(5*1000);//
}
catch (InterruptedException e)
{ }
}
} class OneTask extends TimerTask
{
public void run()
{
long timestamp = System.currentTimeMillis();
System.out.println("2:"+timestamp);
}
}
假设称负责启动守护线程的线程为主线程,在主线程中新启动的且被设置成守护:true的线程称为辅助线程。
如果主线程的任务走到终点了,则不管辅助线程的任务是否完成了、辅助线程一定会被终结的。
如上边代码中的主线程的睡眠5秒的代码被注释掉,则定时器的TimerTask中的输出语句不会被执行的。
个人感觉:类似于erlang的spawn_link,具体场景为:当前进程设置成捕获退出信号、当前进程spawn_link的进程未捕获退出信号。
java守护线程。的更多相关文章
- Java守护线程
最近的项目使用的是dubbo.Web工程发布在Tomcat上,会作为消费者调用其他的dubbo微服务.但是最近发现一个问题,在使用shutdown命令关闭tomcat的时候,Tomcat并没有真正关闭 ...
- 白话JAVA守护线程
OneCoder(苦逼Coder)原创,转载请务必注明出处: http://www.coderli.com/archives/daemon-thread-plain-words/ 关于“白话”:偶然想 ...
- 转:JAVA守护线程
原文地址:https://www.cnblogs.com/wxgblogs/p/5417503.html 详细内容看原文~ ,写的挺好的 在Java中有两类线程:User Thread(用户线程). ...
- Java 守护线程概述
原文出处: 朱小厮 Java的线程分为两种:User Thread(用户线程).DaemonThread(守护线程). 只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最 ...
- JAVA - 守护线程(Daemon Thread)
转载自:http://www.cnblogs.com/luochengor/archive/2011/08/11/2134818.html 在Java中有两类线程:用户线程 (User Thread) ...
- java 守护线程整理
java中finally语句不走的可能存在system.exit(0)与守护线程 线程sleep采用TimeUnit类 设定线程的名字thread.getcurrentThread().setName ...
- Java 守护线程(Daemon) 例子
当我们在Java中创建一个线程,缺省状态下它是一个User线程,如果该线程运行,JVM不会终结该程序.当一个线被标记为守护线程,JVM不会等待其结束,只要所有用户(User)线程都结束,JVM将终结程 ...
- 从 JVM 视角看看 Java 守护线程
Java 多线程系列第 7 篇. 这篇我们来讲讲线程的另一个特性:守护线程 or 用户线程? 我们先来看看 Thread.setDaemon() 方法的注释,如下所示. Marks this thre ...
- java守护线程的理解
package daemonThread; /*setDaemon(true)方法将线程设置为守护线程,线程的Daemon默认值为false * 只要当前JVM实例中存在任何一个非守护线程没有结束,守 ...
随机推荐
- Android画图最基本的三个对象(Color,Paint,Canvas)
Android画图最基本的三个对象(Color,Paint,Canvas) 三个类都存放在 android.graphics包下 1) Color :颜色对象,相当于现实生活中的 ‘调料’ 2) Pa ...
- Jquery重新学习之九[Ajax运用总结C]
前两篇文章主要介绍Jquery如何利用Ajax进行操作数据,主要介绍调用的方法:其中Jquery.ajax()是Jquery中最底层的方法:Jquery还定义的一个方法跟几个事件为Jquery.aja ...
- vue + 百度地图api
主要分解为如下步骤: (1)在html文件中引入百度地图, <script type="text/javascript" src="http://api.map.b ...
- fopen /open,read/write和fread/fwrite区别
fopen /open,read/write和fread/fwrite区别 转载URL:http://hi.baidu.com/%B9%C8%C9%F1%B2%BB%CB%C0jdp/ ...
- 〖C语言〗C语言一个函数传递无限制多参数(不确定参数函数)的方法
/* * ===================================================================================== * * Filen ...
- 保护心灵窗口——防蓝光软件f.lux
一款根据时间变化来自动改变屏幕色温的软件.让你在深夜也能感受到太阳的温暖,顺便还有助于睡眠.相较于花大价钱购置防蓝光屏或者防蓝光膜,这款软件还是excellent的 首先,概念科普(蓝光的危害就略略略 ...
- 使用vs调试.net源代码
使用.NET Framework库参考源进行调试 您可能会想知道使用.NET Framework参考源的调试方式.在下面的示例中,您将看到一个我调用公用Console.WriteLine方法的工具.从 ...
- git配置用户名邮箱
通常会配置全局的 用户名 邮箱 例如 姓名@公司邮箱 姓名 git config --global user.name "姓名" git config --global use ...
- docker 容器自启动
我们设置了docker自启动后,docker可以管理各种容器了,对于容器我们也可以设置重启的策略. 在容器退出或断电开机后,docker可以通过在容器创建时的--restart参数来指定重启策略: # ...
- 基于Websocket+SpringMVC4推送部标Jt808终端报警(转)
原文地址:http://www.jt808.com/?p=1263 在开发部标监控平台的时候,我们要及时的将部标终端报警推送到web界面上,以弹窗的形式提供给用户显示,要将报警显示在界面上,部标808 ...