| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 680 人关注过本帖
标题:怎样终止线程问题。
只看楼主 加入收藏
弱智抓蛙男
Rank: 1
等 级:新手上路
帖 子:264
专家分:0
注 册:2006-11-24
收藏
 问题点数:0 回复次数:7 
怎样终止线程问题。
我的线程在等待网络消息,也就是在read()
我要马上终止它应该怎么办?好像stop()不管用哈。
我的ServerSocket正在accept()状态
怎样立刻终止它?
搜索更多相关主题的帖子: 线程 
2007-03-28 08:50
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
调用socket上的close方法,就会抛出一个IOException,这个时候,那个读的阻塞线程就中断了

可惜不是你,陪我到最后
2007-03-28 10:11
whycrystal
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-3-6
收藏
得分:0 

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

2007-03-28 10:14
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
呵呵,像阻塞线程用楼上这种方法就不太适用了.它只适用于线程没有阻塞的时候

可惜不是你,陪我到最后
2007-03-28 10:16
弱智抓蛙男
Rank: 1
等 级:新手上路
帖 子:264
专家分:0
注 册:2006-11-24
收藏
得分:0 
以下是引用千里冰封在2007-3-28 10:11:52的发言:
调用socket上的close方法,就会抛出一个IOException,这个时候,那个读的阻塞线程就中断了

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

2007-03-28 11:34
弱智抓蛙男
Rank: 1
等 级:新手上路
帖 子:264
专家分:0
注 册:2006-11-24
收藏
得分:0 
以下是引用千里冰封在2007-3-28 10:16:05的发言:
呵呵,像阻塞线程用楼上这种方法就不太适用了.它只适用于线程没有阻塞的时候

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

2007-03-28 11:35
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
算,如果是在wait(),sleep()的时候,你要打断它,就要调用线程的interrupt()方法

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

可惜不是你,陪我到最后
2007-03-28 11:37
弱智抓蛙男
Rank: 1
等 级:新手上路
帖 子:264
专家分:0
注 册:2006-11-24
收藏
得分:0 
以下是引用千里冰封在2007-3-28 11:37:49的发言:
算,如果是在wait(),sleep()的时候,你要打断它,就要调用线程的interrupt()方法

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

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

你太有才了!

2007-03-28 12:12
快速回复:怎样终止线程问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018042 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved