如何在java中终止线程的执行?

时间:2014-02-05 19:32:07

标签: java network-programming client-server

认为客户端已连接到服务器,并且它使用多个线程同时为多个客户端提供服务,并且需要为新来者关闭服务器,并且服务器中的客户端不应受到干扰。我们怎么能这样做?

3 个答案:

答案 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()方法可能是终止线程的最好和最简单的方法。