当前位置:  技术问答>java相关

求教:这个线程为什么停不下来?

    来源: 互联网  发布时间:2015-06-20

    本文导语:  在主程序中调用另一个类(是Thread的子类)的run()方法,当主程序结束时,线程并不结束,直至出现 java.io.InterruptedIOException: Read timed out异常。为什么? 分一定会送,谢谢!! 附被调用类的代码: class HandleServ...

在主程序中调用另一个类(是Thread的子类)的run()方法,当主程序结束时,线程并不结束,直至出现 java.io.InterruptedIOException: Read timed out异常。为什么?
分一定会送,谢谢!!

附被调用类的代码:
class HandleServerInput extends Thread{
private Socket incom;
public HandleServerInput(Socket x){
incom=x;
}
public void run(){
try{
BufferedReader serverin = new BufferedReader(new     
                              InputStreamReader(incom.getInputStream()));
while (true){
String str2=serverin.readLine();
         System.out.println(str2);
}
}
catch(Exception e){
System.out.println("The runner is wrong with  "+e);     }

}
}

|
一个很简单的方法,就是把你要调用的线程设置成Daemon线程(精灵线程)它不依赖于其他线程,如果主线程结束,那么它会自己结束,不用你写代码让它结束,一般它用来维护其他线程的,但自己不用其他线程来维护。

只要在你调run方法前setDaemon(true)就可以了,你试一试。

|
while (true)
{
  String str2=serverin.readLine();
  System.out.println(str2);
}

改为:
while (true)
{
  String str2=serverin.readLine();
  System.out.println(str2);
  if(str2.equalsIgnoreCase("end"))
    break;
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求教求教,shell问题...各位大哥,帮忙下
  • 400分求教: 求教一简单问题,现场给分
  • 高分求教:如何将JAVA文件(.class)制作成可执行文件(.exe),求教方法或工具推荐
  • 急!!求教linux命令的使用:统计出/bin目录中文件的个数,追加到文件filea的结尾
  • 求教:在UNIX中查找包含指定文字的文件名
  • 小白菜求教linux大鸟
  • JDK1.3.1初级问题求教
  • 初学者有问题求教!
  • 各路高手请进!高分求教,非常着急!
  • 高分求教的问题(关于SendMail设置)
  • 简单问题:从sun网站上当了个jdk1.4b3,bin后缀,求教怎么安装
  • 求教:知道当前时间,如何得到N天前的时间 ?
  • 求教:switch(condition)中的condition 必须为整型吗?
  • Linux远程访问的问题,高分求教:)
  • 求教:在Linux下如何做代理服务器?
  • 紧急求教!究竟Java里面有没有相当于C++的CPOINT的类阿?
  • 求教JAVA中XML解析问题
  • 50分求教,在JSP里如何将String转换成Double
  • 我刚装好,是不是需要配制环境变量?求教。
  • 400分求教JAVA皮肤的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3