Java开发——守护线程

转载 2012年03月28日 14:09:44

典型代码:

thread = new Thread(this);
thread.setDaemon(true);
thread.start();

当java虚拟机中没有非守护线程在运行的时候,java虚拟机会关闭。当所有常规线程运行完毕以后,守护线程不管运行到哪里,虚拟机都会退出运行。所以你的守护线程最好不要写一些会影响程序的业务逻辑。否则无法预料程序到底 会出现什么问题。


import java.io.IOException;
/*
* 守护线程在没有用户线程可服务时自动离开
* 在Java中比较特殊的线程是被称为守护(Daemon)线程的低级别线程。
* 这个线程具有最低的优先级,用于为系统中的其它对象和线程提供服务。
* 将一个用户线程设置为守护线程的方式是在线程对象创建之前调用线程对象的setDaemon方法。
* 典型的守护线程例子是JVM中的系统资源自动回收线程,
* 我们所熟悉的Java垃圾回收线程就是一个典型的守护线程,
* 当我们的程序中不再有任何运行中的Thread,
* 程序就不会再产生垃圾,垃圾回收器也就无事可做,
* 所以当垃圾回收线程是Java虚拟机上仅剩的线程时,Java虚拟机会自动离开。
* 它始终在低级别的状态中运行,用于实时监控和管理系统中的可回收资源。
* 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。
* 也就是说守护线程不依赖于终端,但是依赖于系统,与系统“同生共死”。
* 那Java的守护线程是什么样子的呢。
* 当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;
* 如果还有一个或以上的非守护线程则JVM不会退出。
*/
public class testThread extends Thread {

public testThread() {
}
/** *//**
* 线程的run方法,它将和其他线程同时运行
*/
    public void run(){
for(int i = 1; i <= 100; i++){
try{
Thread.sleep(100);

} catch (InterruptedException ex){
ex.printStackTrace();
}
System.out.println(i);
}
}
public static void main(String [] args){
testThread test = new testThread();
test.setDaemon(true);
test.start();
System.out.println("isDaemon = " + test.isDaemon());
try {
System.in.read(); // 接受输入,使程序在此停顿,一旦接收到用户输入,main线程结束,守护线程自动结束
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

相关文章推荐

java开发之线程(守护线程daemon和用户线程User Thread)

java开发之线程(守护线程daemon和用户线程User Thread)

Java并发学习之七——守护线程

本文是学习网络上的文章时的总结,感谢大家无私的分享。 1、Java有两种Thread:“守护线程Daemon”与“用户线程User”。用户线程:Java虚拟机在它所有非守护线程已经离开后自动离开...

JAVA并发编程——守护线程(Daemon Thread)

在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)。 所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很...

Java多线程初探——守护线程

一、守护线程概念 Java中将线程分为两类,用户线程和守护线程,其中用户线程就是在前台执行的,用于执行具体操作的线程,比如程序中的主线程、网络连接的子线程等。守护线程是指运行在后台的,为用户线程提供...

JAVA并发编程——守护线程(Daemon Thread)

JAVA并发编程——守护线程(Daemon Thread) http://blog.csdn.net/sjyhehe/article/details/46448303?ref=myrea...

java——深层次文件拷贝,建立定时器守护线程做进度条

package L15.PThread;import org.junit.Test;import java.io.*; import java.text.SimpleDateFormat; impor...

Java多线程——守护线程

线程分类在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 作用Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是 GC (垃圾...

java daemon 守护线程实例

  • 2012-12-12 15:25
  • 986B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)