setDaemon()和isDaemon当t1.setDaemon(true);之后,使用
public final boolean isDaemon(){
return false;
}编译也能通过?这里的false和true都怎么解释?我有点乱!!呵呵

解决方案 »

  1.   

    setDaemon(true);
    设置它为守护线程使用 
    public final boolean isDaemon(){ 
    return false; 

    这算重写了父类的函数不冲突吧isDaemon()的返回值我昨天看Thinking in java时候也很混乱,我给你页码你自己领会下
    英文第四版 813页
      

  2.   

    编译肯定能通过啦,Thread的isDaemon就是用来测试线程是否为守护线程,你在自己的类中覆盖了Thread的isDaemon方法,所以当你把线程设为守护线程后,用isDaemon无论如何都会返回false.
      

  3.   

    记错了,isDaemon()返回值很明确的
    混乱的是有关isInterupt()和interupt(),抱歉哈、
      

  4.   

    返回true编译也能过,为什么?
      

  5.   

    我想问的是你的类是怎么实现的,如果是继承自Thread的话肯定是编译不通过的,因为Thread中的isDaemon()是final的,要是不是继承自Thread,也就是下面这样:
    class Test {
       public final boolean isDaemon() {
          return false;
       }   Thread t = new Thread();//当然你创建的Thread对象可能还传了别的参数
       t.setDaemon(true);
       System.out.println(t.isDeamon());//这里调的是Thread中的isDaemon()而不是你写的isDaemon()
       t.start();
    }有一点要提醒的是setDaemon()不要在start()后调用
      

  6.   

    谢谢问的直接点isDaemon()用在哪里?怎么用?