关闭

多线程中使用Socket Server的问题

320人阅读 评论(0) 收藏 举报

写安卓遇到的问题,一个启动监听的按钮,一个关闭监听的按钮,在启动关闭之后再启动将出现问题端口被占用,所以是因为前一个已启动的监听线程并没有被正常关闭导致端口还在被占用。虽然使用了interrupt,但是前一个监听线程并没有出现阻塞的情况,而是处于类似死循环的状态,所以没有抛出异常而被处理。

Socket Server的accept方法和Socket的connect方法使用的都是类似于循环的方法,并不是阻塞的方法,所以在多线程使用interrupt方法去结束一个使用了这种类型的方法的子线程并不能抛出异常,然后结束。这两种方法可以通过设置超时时间,然后在超时时间结束之后调用sleep来使之阻塞,这样就可以在设置interrput之后抛出异常并中断方法。

其他类似的例子

http://blog.csdn.net/sapphiron/article/details/3018053

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1252次
    • 积分:106
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类