double radius = isFromClient.readDouble();一句会阻塞该进程。
也就是说它会等到客户端发过来一个对象以后,才会继续执行。这不是真正的死循环。它是有结束条件的。

解决方案 »

  1.   

    如果不相信的话,可以利用swing试一下。你把这个进程写到窗体的构建中,那么这个窗体是不会显示的,因为进程被阻塞了。
      

  2.   

    Thread一般都是一直运行的啊
    while(true){}循环保证这个Thread一直运行
    这个程序中,如果客户端断开链接,那么就会产生IOException从而终止这个线程
    还有一种做法是用while(aFlag){}
    在循环内可能改变aFlag从而终止线程
      

  3.   

    这句: Socket connectToClient = serverSocket.accept();应该放进while,否则不能保持监听;第二个while应该是不需要的,如果没有异常抛出的话是死循环。
      

  4.   

    Thread并不一定需要while循环,只有你的thread类的功能实现需要while的时候才需要 楼主的thread类并不需要