zoukankan      html  css  js  c++  java
  • 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的进程未捕获退出信号。

  • 相关阅读:
    【CODEVS1287】矩阵乘法
    云时代架构读后感(十五)
    使用js拆分带参数的URL,将参数分离出来
    云时代架构读后感(十四)
    云时代架构读后感(十三)
    SSH框架整合报错org.springframework.web.context.ContextLoaderListener
    SOA架构分析
    云时代架构读后感(十二)
    Hibernate的CRUD配置及简单使用
    Struct2的简单的CRUD配置和使用
  • 原文地址:https://www.cnblogs.com/ribavnu/p/3678428.html
Copyright © 2011-2022 走看看