你说的不正确,实际上run()并没有包括任何形式的循环,你退出了run()的函数
说明了这个线程已经结束,所以需要用while(true)

解决方案 »

  1.   

    jdk1.3有以前的版本中(不知道jdk1.4怎么样),终止线程API--stop不起作用,destroy()方法SUN不赞成用,因为它也不能保证线程的退出。而退出线程的run却可以保证退出线程,为了让一个线程处于某种处理数据状态(如:不继的接收网络信息)--即使线程处于活动状态必需在run方法中加while(true)来实现,可以在while(true)中设置跳出循环的条件语句,从外部控制线程的结束。
    thread本身的run()方法没有包含某种形式的无限循环。
    线程的run()方法中的执行部分只需要执行一次,不需要套一层while(true)循环
      

  2.   

    你的意思我不太明白,但是我认为run()方法到不是含有什么循环,而是自己定义的,通常用来随时监测一些变量或是系统状态等,以准备随时作出响应.你所说的应该是线程自己的,如果触发的话他就一直存在,具体干什么就由你定义了,比如上面的程序
    如果你把while(true)循环去掉的话它就只能运行一次了.而且别的线程也是可以stop.这是我的一点想法,希望能起到抛砖引玉的作用.
      

  3.   

    各位说的对,是我写错了,run()方法中是不包含什么循环,只是run()方法中常用的一种形式是无限循环。
    谢谢各位指点,我明白了!!!给分~~~~~~