当前位置: 代码迷 >> Java相关 >> 怎样终止线程问题。
  详细解决方案

怎样终止线程问题。

热度:103   发布时间:2007-03-28 08:50:23.0
怎样终止线程问题。
我的线程在等待网络消息,也就是在read()
我要马上终止它应该怎么办?好像stop()不管用哈。
我的ServerSocket正在accept()状态
怎样立刻终止它?
搜索更多相关的解决方案: 线程  

----------------解决方案--------------------------------------------------------
调用socket上的close方法,就会抛出一个IOException,这个时候,那个读的阻塞线程就中断了
----------------解决方案--------------------------------------------------------

在stop函数里调用中断函数interrupt()函数;
或者是设置标志变量
例如:
public boolean canRun=true;
while(canRun)
{
try
{
你会出现错误的地方(代码)
}
catch(InterruptedException e){canRun=false;};
}
你试一下吧!我进来也是在做这方面的程序呢!大家一起学习乐!


----------------解决方案--------------------------------------------------------
呵呵,像阻塞线程用楼上这种方法就不太适用了.它只适用于线程没有阻塞的时候
----------------解决方案--------------------------------------------------------
以下是引用千里冰封在2007-3-28 10:11:52的发言:
调用socket上的close方法,就会抛出一个IOException,这个时候,那个读的阻塞线程就中断了

有道理
我原来用thread.stop()
结果没有用,并不能停止线程。


----------------解决方案--------------------------------------------------------
以下是引用千里冰封在2007-3-28 10:16:05的发言:
呵呵,像阻塞线程用楼上这种方法就不太适用了.它只适用于线程没有阻塞的时候

问个问题
wait()状态的线程算阻塞线程么?


----------------解决方案--------------------------------------------------------
算,如果是在wait(),sleep()的时候,你要打断它,就要调用线程的interrupt()方法

如果是IO的读取让它阻塞了,你就可以调用这个流的close()方法让它中断
----------------解决方案--------------------------------------------------------
以下是引用千里冰封在2007-3-28 11:37:49的发言:
算,如果是在wait(),sleep()的时候,你要打断它,就要调用线程的interrupt()方法

如果是IO的读取让它阻塞了,你就可以调用这个流的close()方法让它中断

哎呀,就想对你说一句话:

你太有才了!
----------------解决方案--------------------------------------------------------

  相关解决方案