发生IO阻塞的线程应该怎么杀掉啊?

littleholly 2003-06-13 08:16:34
rt
...全文
202 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
smartcoffee 2003-06-13
  • 打赏
  • 举报
回复
呵呵。不难是因为类都帮你封装了。建议你用NIO来解决。可能可以解决你的问题,不过NIO操作起来有点麻烦。
littleholly 2003-06-13
  • 打赏
  • 举报
回复
可是我没有用多难的东西啊,其实本来可以不用的,只是为了解决io阻塞才用的
sun.net.ftp不能设置超时:(
smartcoffee 2003-06-13
  • 打赏
  • 举报
回复
当用stop停止线程,线程不会被清除。而是随机的!
smartcoffee 2003-06-13
  • 打赏
  • 举报
回复
线程问题向来很难把握,连sun的官方文档中都说到,如果能不用线程的代码最好不用。
如果要用,也参考现在现成的模式。不要自己想当然!
littleholly 2003-06-13
  • 打赏
  • 举报
回复
可是有这样一个问题
我写的是一个ftp文件列表的程序,使用的是sun.net.ftp.*;的包
那里面没有设置超时的选项啊?
我用另外一个高优先级的线程来stop()这个io线程。那这个io线程是暂时停止呢(不会被垃圾搜集器清除)还是完全退出(io被中断,可以被垃圾搜集器清除)?

我用这个方法来搜索很多个地址,一个线程结束了才开另外一个线程。但是大多数时候用了一会儿cpu占用率就100%了,我在怀疑是不是上一个线程并没有真正结束而导致的

百思不得其解
nbm0 2003-06-13
  • 打赏
  • 举报
回复
timeout处理

超过延时,就自动退出
littleholly 2003-06-13
  • 打赏
  • 举报
回复
是用.stop()吗?
smartcoffee 2003-06-13
  • 打赏
  • 举报
回复
将这个阻塞的线程优先级调低点。然后用一个优先级高的线程来控制。预设一个可容忍值。当低的线程在规定时间内没有完成。高的线程就杀掉这个线程!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧