怎么关闭一个“阻塞”状态的线程?

还是做TCP/IP的实验,因为要用到界面编程嘛,对于我这样的小菜有这么几种选择:

MFC,Swing

别的语言真心不太会了。

而MFC的东西感觉比Java要难,关键是我手里没有合适的帮助文档。

所以就用了Swt ,有的大牛可以用swing写出很漂亮的程序,

我还是感觉就我这实力还是用swt做点好看的吧。


那么很快就会遇到一个问题,当我执行到Socket.accept()时,整个窗口都卡住了,这就导致了我的界面非常不友好

后来想到了多线程,每当有请求的时候开启一个新的线程。这样窗口就一直会对事件进行响应了。


但是这里又有一个问题,关于阻塞:

Socket.accept()的时候,线程阻塞了,虽然不影响我的窗口,

但是我想通过窗口事件,来关闭这个线程,

怎么办呢?


有人推荐我用  interrupt   方法来中断线程,

恩,这种方法的确可以用,但只是线程因 sleep  或者是  wait 方法引起的阻塞才起作用

而我用的是 socket 引起的阻塞

所以这个不好用。

还有一些推荐 stop 等方法的,哪些已经被废弃了,即使好用也不推荐啊(我用的1.7,没找到这个方法,估计java已经放弃了这个方法了吧)


我用的方法是在阻塞源头产生异常,在截获异常的方法里,结束  run  方法。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值