认为客户端已连接到服务器,并且它使用多个线程同时为多个客户端提供服务,并且需要为新来者关闭服务器,并且服务器中的客户端不应受到干扰。我们怎么能这样做?
答案 0 :(得分:2)
做这样的事情:
public class TheThreadClass extends Thread{
private bool terminated;
public void terminate(){
this.terminate = true;
}
@Override
public void run(){
while(!terminated){
// thread code here
}
}
}
答案 1 :(得分:2)
关闭ServerSocket.
accept()
中阻止的线程会抛出一个IOException: socket closed,
,它应该退出。然后,不会接受任何新连接,但将继续为所有现有连接提供服务。
答案 2 :(得分:-1)
我觉得interrupt()方法可能是终止线程的最好和最简单的方法。