当前位置:首页 > 开发 > 编程语言 > 多线程 > 正文

java 守护线程实践

发表于: 2012-07-03   作者:漫步邃思   来源:转载   浏览次数:
摘要:    最近工作不忙,研究了一下java线程方面的东西,对守护线程一直是很感兴趣的,就找了个示例练习了一下,了解了一些。     所谓的后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分。因此当所有的非后台线程结束时,程序也就终止了,同时会杀死所有后台线程。反过来说,只要有任何非后台线程(用户线程)
   最近工作不忙,研究了一下java线程方面的东西,对守护线程一直是很感兴趣的,就找了个示例练习了一下,了解了一些。
    所谓的后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分。因此当所有的非后台线程结束时,程序也就终止了,同时会杀死所有后台线程。反过来说,只要有任何非后台线程(用户线程)还在运行,程序就不会终止。后台线程在不执行finally子句的情况下就会终止其run方法。后台线程创建的子线程也是后台线程。
import java.util.concurrent.TimeUnit;

/**
 * 描述: 后台守护线程示例
 * 版权: Copyright (c) 2012 
 * 版本: 1.0 
 * 创建日期: 2012-7-3 
 * 创建时间: 上午09:57:27
 */
public class DaemonDemo implements Runnable{
	public void run()
	{
		try{
			while(true)
			{
				Thread.sleep(1000);
				System.out.println("#"+Thread.currentThread().getName());
			}
		}catch(InterruptedException e)
		{
			e.printStackTrace();
		}
		finally{
			System.out.println("finally!");
		}
	}
	public static void main(String []args)
	{
		for(int i= 0;i<10;i++)
		{
			Thread deamon = new Thread(new DaemonDemo());
			deamon.setDaemon(true);
			deamon.start();
		}
		System.out.println("All deamon started!");
		try{
			TimeUnit.MICROSECONDS.sleep(1000*5000);
		}catch(InterruptedException e){
			e.printStackTrace();
		}
		System.out.println("Main exit!");
	}
}


   通过运行结果来看,子线程是受控于主线程的,子线程退出时,JVM强制终止了守护线程,但并非以异常方式结束的,连finally语句块也不执行,这样的话想要捕获守护线程退出的状态似乎增加了难度。


java 守护线程实践

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
前言: 在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 只要当前JVM实例中尚
前言: 在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 只要当前JVM实例中尚
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一
什么是守护线程 a. 在客户/服务器模式下,服务器的作用是等待用户发来请求,并按请求完成客户的工作
什么是守护线程 a. 在客户/服务器模式下,服务器的作用是等待用户发来请求,并按请求完成客户的工作
1、守护线程 Java线程机制分为两种 ,用户线程(User Thread)和守护线程(Daemon Thread)。 用户
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) Daemon的作用是为其他线程的
所谓的后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) Daemon的作用是为其他线程的
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) Daemon的作用是为其他线程的
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号