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

有关java多线程的问题,闲人免进。

    来源: 互联网  发布时间:2014-12-29

    本文导语:  如何让线程在运行固定的一段时间后停止而又不使用stop()方法。 注意,jdk文档上的方法可不行:如果线程在读文件那里停止的话,线程不会按文档上的方法自动退出的,因为该循环判断条件根本就不会被执行到。 ...

如何让线程在运行固定的一段时间后停止而又不使用stop()方法。
注意,jdk文档上的方法可不行:如果线程在读文件那里停止的话,线程不会按文档上的方法自动退出的,因为该循环判断条件根本就不会被执行到。

|
如果时间不是要求特别严格,可以参照定时器的做法!
定时器时间到,给需要退出的线程发消息,告诉它现在可以退出了。

明白了吗?可以解决你的问题吗?

|
用下面方法:
public final synchronized void join(long millis) 
throws InterruptedException 
说明:
millis是指当用了millis毫秒后线程退出.如果millis == 0的话,表示永远不退出。

|
上面的方法好像没有作用啊!

|
另外新建一个线程line,在它的run方法里放置打开文件的语句,
然后,在你的程序里插入这段语句

line.start();
try{
  line.join(timeout);
}
catch(InterruptedException exception){
}

生成socket对象时如果地址不对也要等很久,我以前就是这么解决的。


|
用一个进程控制时间(可用sleep方法)然后把一个错误传入要退出的线程,比如除0异常
这样被控制的线程就会因异常而退出(不用stop方法了cool!)
记得给分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

|
我先前提出的的确没有关闭子线程,不过下面的可以。
新建一个线程line,在它的run方法里这样写:

public void run(){
  try{
    while(!interrupted()){//判断自己是否最近被中断,以防母线程中断自己时,自己
                          //未处于睡眠或等待状态。
      do you want to do ...;
    }
  }
  catch(InterruptedException e){ //线程睡眠或等待时被中断
  }
}

然后,在你的程序里插入这段语句

line.start();
try{
  line.join(timeout);
  line.interrupt();
}
catch(InterruptedException exception){
}


这样子线程应该被关掉了。

|
精确的退出而不用stop(),可能不行。

|
海盗是对的。不过,由于你只有一个CPU,所以可能不一定会非常精确。

|
落叶狂风:
    在你的例子中,其实需要解决的问题是何时关闭读文件流。因此你可以制作一个定时器,
在适当的时间后,关闭输入流即可。
    这种方法比较简单.

|
能否试着让另一个线程监控你的线程?

|
看来你是要把你的线程终止掉吧,你当然也可以用方法interrupt();这回可以了把! 

|
我觉得你还是应该仔细分析你的代码。看看会造成长时间等待的地方和原因,在采取一定的措施。
如果你不能分析出来,大概只能用stop(),可是会出现资源没有正常释放的问题!

|
实在不行的话,要不把你的程序贴一贴,让大家给你出出注意,光这样讨论我看恐怕是没有结果的
更何况stop()方法是不安全的,能不用的地方就不要用了!

|
xiaow的程序是对的!
我试了一下,使用的时间比较长的任务是Thread.sleep(1000000);
也可以这样
{
...
;一个阻塞的任务
if(interrupted()) throw new NoSuchMethodError();
...
}

    
 
 

您可能感兴趣的文章:

  • 有关线程创建的问题
  • 请解释一下有关线程的这个问题!
  • 有关Linux下开发程序--上万个线程问题。菜鸟问(来者有分,谢谢大家)
  • 请教有关线程返回值的问题
  • 帮忙怎样写有关 unix下的线程的问题(在线等待,急用,谢谢)
  • 有关不同线程同时访问同一公共Vector变量的问题(欢迎讨论)
  • 初来乍到,有关多线程的一个问题,
  • 有关编译线程代码时出现的一些错误提示。。
  • 求助:推荐LINUX有关进程、线程方面讲的比较好的书(用户态的)
  • 有关线程退出的问题
  • 有关线程的一些数据结构及函数求教。。
  • linux 能开的 最大 线程 和 进程 数 和什么有关?
  • 请帮我看一下程序,有关多线程
  • 有关线程内存分配的问题
  • 有关java线程方面的问题,请高手帮忙
  • 急,在线等待,有关多线程applet的问题
  • 满分跪求解决方法:有关linux多线程问题.....
  • 求助:有关linux下的线程编程问题-生产者消费者问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求教有关smartupload的问题,有关就给分!!
  • 有关在sco unix5.0.4下有关网卡设置的问题(非常急,高分相送)
  • 有关snmp的一个很菜,但是困扰了我很久的问题,有关工作原理的,望大家赐教
  • 有关ResultSet的问题,帮助解决问题者另外加分...
  • (菜鸟问题)有关目录中文件执行的问题???
  • 有关Qt下编译的环境问题
  • 有关裁减内核及shell命令的问题
  • 有关cocoon的问题??
  • Helper! 有关Jbuilder使用问题???
  • 有关swing的问题,请高手回答
  • 一个有关分数的问题
  • 有关pcmaclan的打印机共享问题
  • 请教有关samba共享名大小写的问题
  • 想看一下吗?有关swing 组件的问题?
  • 有关L的问题(菜鸟求教)???
  • 有关jsp服务器的一个问题
  • java 进阶级问题,有关网络的问题,请多多帮助
  • 有关Liunx 的最低配置问题
  • 有关环境的问题
  • 请教有关konqueror 问题?
  • ​有关Docker的八个令人难以置信的事实
  • 有关内码转换(跟HttpServletRequest有关)
  • IP地址数字互转 iis7站长之家
  • 大家推荐一下有关LINUX7有关的网络编程的书。最好是比较全面的!比较经典的。
  • 有关KDevelop-3.0.4-0.1.i386.rpm的有关软件包
  • 有关KDevelop编程的资料
  • 有关集群与数据同步
  • 请教有关英文简历方面的词句!
  • 有关报表打印(在JAVA,WEB下应用)急用!
  • 请各位大哥告知JAVA中消息机制的有关资料,拜托!
  • 有关jbuilder


  • 站内导航:


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

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

    浙ICP备11055608号-3