在一个公司面试,问了我很奇怪的问题,到现在一直没有弄懂,希望各位指导。
1.如果守护线程
2.怎样真正停止一个线程
第一题,我个人理解,是不是所谓的同步,只是不同的说法?
第二题,是不是return来真正的停止一个线程?

解决方案 »

  1.   

    守护线程。这是基础知识了,GOOGLE吧
    在先版本的JDK里面,没办法让一条线程中途停止,如果线程出现阻塞,可以用中断的方式,让他往下跑,直到跑完,就这么个结束
      

  2.   

    setDxxx为true之后就是守护线程了
    第二个问题蛋疼了System.exit()准保可以停止一个线程,还可以停止多个
      

  3.   

    问题1:
    可以从字面上来分析也是的,守护线程就是要被调用程序守护才能生存的,调用程序不运行了,它也就死了,被垃圾回收了。
    问题2:停一个线程最好把它的runflag属性设置成false,最好不要调用stop(),stop()带有不定因素太多。
      

  4.   

    关于停止一个线程,确实是很蛋疼的问题线程里面有stop,不过是个很蛋疼的不推荐使用的方法。比较安全点停止的就是用while(flag){...执行语句};
    flag为线程类的一个属性,想停的时候就把flag设为false
      

  5.   

    关于停止一个线程, 还有一种方法就是抛出InterruptedException
      

  6.   

    线程的终止是虚拟机回收的,你只能中断它,跑完run方法,如果没别的引用什么的就会被垃圾回收了。