后台线程是程序在运行的时候在后台提供一种通用服务的线程,当所有的非后台线程结束时,程序也就终止,同时会杀死所有的后台线程。下面的例子很好的说明这一点:
public class SimpleDaemons implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
while(true)
{
try {
TimeUnit.MILLISECONDS.sleep(100);
System.out.println(Thread.currentThread()+" "+this);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
for(int i=0;i<10;i++)
{
Thread deamon=new Thread(new SimpleDaemons());
deamon.setDaemon(true);
//注意这个地方一定要放在线程启动之前设置,否则会抛出异常java.lang.IllegalThreadStateException,并且不会起作用
//即便是这里启动了10个线程,且每个线程都是一个死循环,但是这10个都是后台线程,主线程的运行时间却很短,所以后台线程很快也会结束,不会一直执行
deamon.start();
}
System.out.println("SimpleDaemons.main()");
try {
TimeUnit.MILLISECONDS.sleep(175);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
=========================================
如果一个线程被设置成了后台模式,这个线程派生出许多子线程,那么这些子线程也是后台线程,即便它们没有显示地设置成后台模式
public class DaemonSpawn implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
while(true)
{
Thread.yield();
}
}
}
===========================
public class Daemon implements Runnable{
//这里派生出10个子线程
private Thread[] t=new Thread[10];
@Override
public void run() {//每次启动主线程时 10个子线程也将启动
// TODO Auto-generated method stub
for(int i=0;i<10;i++)
{
t[i]=new Thread(new DaemonSpawn());
t[i].start();
System.out.println("DaemonSpawn "+i+" started!");
}
for(int i=0;i<t.length;i++)
{
System.out.println("t["+i+"].isDaemon="+t[i].isDaemon());//判断县城是否为后台线程
}
while(true)
{
Thread.yield();
}
}
}
================
public class Daemons {
public static void main(String[] args)
{
Thread d=new Thread(new Daemon());
d.setDaemon(true);
d.start();
System.out.println("d.isDaemon()="+d.isDaemon());
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
-----------执行结果如下:
d.isDaemon()=true
DaemonSpawn 0 started!
DaemonSpawn 1 started!
DaemonSpawn 2 started!
DaemonSpawn 3 started!
DaemonSpawn 4 started!
DaemonSpawn 5 started!
DaemonSpawn 6 started!
DaemonSpawn 7 started!
DaemonSpawn 8 started!
DaemonSpawn 9 started!
t[0].isDaemon=true
t[1].isDaemon=true
t[2].isDaemon=true
t[3].isDaemon=true
t[4].isDaemon=true
t[5].isDaemon=true
t[6].isDaemon=true
t[7].isDaemon=true
t[8].isDaemon=true
t[9].isDaemon=true
==========================
当主线程结束时,后台线程会立即结束,甚至可能不会执行finally字句的内容
class ADaemon implements Runnable{
public void run(){
try{
print("XXXXXX");
TimeUnit.SECONDS.sleep(1);
}catch(Exception ex){
}finally{
print("finally...");
}
}
}
====在main函数里面直接测试这个线程,并设置为后台线程就不会执行finally块的语句
分享到:
相关推荐
Daemon_Tools Daemon_Tools Daemon_Tools Daemon_Tools
虚拟光驱 daemon_tools_347cn_eric虚拟光驱 daemon_tools_347cn_eric虚拟光驱 daemon_tools_347cn_eric虚拟光驱 daemon_tools_347cn_eric虚拟光驱 daemon_tools_347cn_eric虚拟光驱 daemon_tools_347cn_eric虚拟光驱...
虚拟光驱DAEMON Tools的安装和简单使用
daemon 程序例子daemon 程序例子daemon 程序例子
Daemon Tools v4.03 V4.03HE 汉化版,相信经常使用虚拟光驱的人都应该记得,这是当年极其经典的一个版本。 现在的虚拟光驱越做越大,功能也越来越多,最新的版本Daemon Tools 安装后要占用硬盘50多M,然尔对一般的...
commons daemon在windows操作系统上的具体使用方法,带有jar包。
虚拟光驱Daemon Tools使用方法.docx
daemontool4.11中文完美版daemontool4.11中文完美版daemontool4.11中文完美版
daemon.rar 虚拟光驱,安装iso文件的好东西
Daemon Tools 3.46 简体中文版.rar 内有Daemon Tools 3.46 简体中文版.rar; daemon.log
赠送jar包:commons-daemon-1.0.13.jar; 赠送原API文档:commons-daemon-1.0.13-javadoc.jar; 赠送源代码:commons-daemon-1.0.13-sources.jar; 赠送Maven依赖信息文件:commons-daemon-1.0.13.pom; 包含翻译后...
“学会与别人分享自己的快乐”——虚拟光驱软件,DaemonTools4.09 ,经测试 Window Server 2008可用,win7 还是不能用~无任何插件及不良信息,放心使用!
DAEMON Tools Lite 可以制作简单光盘映像文件和模拟 CD/DVD 光驱的最流行软件产品 功能 加载 *.mdx, *.mds/*.mdf, *.iso, *.b5t, *.b6t, *.bwt, *.ccd, *.cdi, *.bin/*.cue, *.ape/*.cue, *.flac/*.cue, *.nrg, ...
daemon344光驱模拟器
使用DAEMON Tools Pro Advanced您可以创建32个SCSI虚拟设备,4个IDE虚拟光驱。高级模拟只支持SCSI和IDE。 DAEMON Tools PRO 高级功能加载镜像 DAEMON Tools Pro Advanced 加载 *.mdx, *.mds/*.mdf, *.iso, *.b5t, *...
虚拟光驱daemon
1、鼠标右键,以管理员身份运行包里的setup.exe,安装Daemon Tools Pro,选择Advanced Edition,使用许可选择trial license 2、如果安装程序要求重启电脑,重启电脑;重启后, Ctrl+Shift+Esc运行任务管理器,杀...
Daemon Tools现在同时支持32位和64位操作系统。 一个不错的虚拟光驱工具,支持Win9x/win2k,支持ps,支持加密光盘,装完不需启动即可用。是一个先进的模拟备份并且合并保护盘的软件,可以备份SafeDisc保护的软件,...
虚拟光驱软件DaemonTools 4.09
DAEMON Tools 4.30.1 最新汉化版HA-daemon4301-lite.EXE