阅读背景:

Java线程的传说(3)——如何关闭一个正在accept的ServerSocket?_budapest的专栏

来源:互联网 

加入一个ServerSocket正在另一个线程堵塞accept,那如何停止accept或者关闭Socket?Server socket 设置下超时 setSoTimeout 然后在Listen线程中用interrupt其实直接close socket也可以,不过会抛出异常,我的意思是有什么比较安全而又简单的办法?难道要加一个标志,然后要关闭的时候把标志设为stop,然后连接listernSocket?这样也未免太麻烦了JDK5.0里面新增了java.util.concurrent包(对于多线程的开发建议尽量使用这个包),下面是javadoc里面的样例代码用法示例下面给出了一个网络服务的简单结构,这里线程池中的线程作为传入的请求。它使用了预先配置的Executors.newFixedThreadPool(int) 工厂方法: 加入一个ServerSocket正在另一个线程堵塞accept,那如何停止accept或者关闭




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: