A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨长川 中级黑马   /  2013-3-23 14:45  /  1912 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨长川 于 2013-3-23 21:56 编辑

如题,Daemon线程 没怎么看懂,它与一般的线程差别到底有哪些??
package onlyfun.caterpillar;

public class DaemonThread {
    public static void main(String[] args) {

        Thread thread = new Thread(
        // 这是匿名类的写法
            new Runnable() {
                public void run() {
                    while(true) {
                        System.out.print("T");
                    }
                }        
            });
        // 设定为Daemon线程
        thread.setDaemon(true);
        thread.start();
    }
}

点评

记得及时处理帖子哦,继续追问,或将分类改成【已解决】,谢谢  发表于 2013-3-23 18:52

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

2 个回复

倒序浏览
setDaemon(true);平时和前台线程抢资源,但是当所有的前台线程结束后,后台线程(守护线程)自动结束。JVM虚拟机退出

使用在要守护线程运行之前。

public static void main(String[] args)

{

......

ti.setDaemon(true);//声明是守护线程

t2.setDaemon(true);

t1.start();//守护线程启动并运行

t2.start();

}

形象点比喻,前台线程和守护线程共同在拍电影,前台线程就相当于演员,守护线程就是给前台线程提供灯光支持。
演员演完了,灯光就可以灭了。
守护线程运行的理由是因为前台线程运行着,像个仆人。主人干什么,他就干什么。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
简单的说就是,后台线程的特点就是:开启后和前台线程共同抢夺cup执行权运行,开启和运行都是没有区别的,当所有的前台线程都结束后,后台线程就会自动结束。后台线程也叫守护线程或用户线程,setDaemon()方法必须在启动线程前调用!

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马