| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 331 人关注过本帖
标题:Daemon线程?
只看楼主 加入收藏
yu1543054075
Rank: 1
等 级:新手上路
帖 子:102
专家分:8
注 册:2015-4-30
结帖率:90.24%
收藏
已结贴  问题点数:20 回复次数:1 
Daemon线程?
public class ThreadA {
    public static void main(String[] args) {
        System.out.println("ThreadA执行:");
        
        Thread threadB = new Thread(new Runnable() {
            public void run() {
                try {
                    System.out.println("ThreadB开始:");
                    for (int i = 0; i < 5; i++ ) {
                        Thread.sleep(1000);
                        System.out.println("ThreadB执行..");
                    }
                    System.out.println("ThreadB即将结束..");
                }
                catch(InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        );
        threadB.setDaemon(true);//设置为Daemon线程
        threadB.start();
        System.out.println("ThreadA执行");
    }
}
//
//C:\Users\Administrator\Desktop\classes>java ThreadA
//ThreadA执行
//ThreadA执行
//ThreadB开始
为什么不是ThreadA执行
          ThreadB开始
          ThreadA执行
求指导!!
搜索更多相关主题的帖子: public 
2015-06-08 19:57
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
收藏
得分:20 
main函数 也是一个主线程的 Daemon 和普通的线程没什么区别,他结束的周期依赖于系统,也就是说如果主线程结束了,那么daemon服务线程也结束了……
程序代码:
public class ThreadA {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("ThreadA执行:");
        Thread threadB = new Thread(new Runnable() {
            public void run() {
                try {
                    System.out.println("ThreadB开始:");
                    for (int i = 0; i < 100; i++ ) {
                        Thread.sleep(200);
                        System.out.println("ThreadB执行.."+i);
                    }
                    System.out.println("ThreadB即将结束..");
                }
                catch(InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        );
        threadB.setDaemon(true);//设置为Daemon线程
        threadB.start();
        for (int i = 0; i <5; i++) {
            Thread.sleep(200);
            System.out.println("ThreadA执行==============");
        }
    }
2015-06-09 15:56
快速回复:Daemon线程?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031831 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved