[Java]如果:
Thread testThread=new Thread(new Runnable()
{
    while(true)
        System.ouyt.println("test");
});testThread.start();testThread=null;我测试了这样线程不会中断,但是我不明白对象都null了,那不就是等待垃圾回收了不是?是不是工作中的对象永远不会被回收?还是另有其他变量在引用testThread(线程池)?
来自于一个NIIT题:
30. 关于JDK1.2的线程,以下陈述中哪个为真?
1. 你不可由Thread类进行扩展。
2. 线程赋以null值会破坏它。
3. 线程体只能写在run方法内。
4. Java 程序中,你只能启动一个线程。
我作模拟题的时候选了2,后来对答案测试了知道2不对。但是答案3就能说得过去吗?我完全可以在run()方法中调用类中的其他方法,况且Thread接受的是实现了Runnable接口的对象,而不是像C#中通过代理回调函数。xiexie

解决方案 »

  1.   

    转一下好了  但是java区不如这里热- -
      

  2.   

    我测试了这样线程不会中断,但是我不明白对象都null了,那不就是等待垃圾回收了不是?是不是工作中的对象永远不会被回收?还是另有其他变量在引用testThread(线程池)?
    ==================================================================应该是等待垃圾回收
    第二题,我选3
      

  3.   

    我也知道,=null之后等待回收,并且等待期间不自动终止线程。
    但是“线程体只能写在run方法内。”也不对啊,我觉得应该是整个class都是线程体。真是无聊的题。明天要考试了,郁闷,担心考不了第一
      

  4.   

    虽然压力重重,还是考了第一,而且是这一届的NIIT模块测试国内第二哎,考试真没意义。