zoukankan      html  css  js  c++  java
  • 线程的暂停与重新启动

    调用Thread.Sleep使当前线程阻塞一段时间,休眠,直到调用Thread.Interrupt,另一个线程中断或被Thread.Abrot终止。
    注意:一个线程不能对另一个线程Sleep.
    Thread.Suapend暂停一个线程,自身调用,该调用阻塞,直到该线程被另一个线程继续为止。当另一个线程调用它,将会对该线程暂停。
    Thread.Resume将使另一个线程跳出挂起状态并继续执行,而与调用SuSpend的次数无关。
    例:
    线程休眠5s:
    Thread.Sleep(5000);
    线程挂起:
    Thread thread = new Thread(new ThreadStart(accp));
    thread.Start();
    ...
    thread.Suspend();
    //线程重新开始:
    ....
    thread.Resume();
    线程的销毁:
        线程要占用大量的系统资源,完成特定使命后,必须适时销毁。销毁线程可用Thread
    类的Abort方法或Interrupt方法。
        在调用Abort方法时,在指定线程上引发ThreadAbortException。以开始终止此线程的
    过程。ThreadAbortException是—个可以由应用程序代码捕获的特殊异常,但除非调用
    ResetAbort,否则会在catch块的结尾再次引发它。ResetAbod可以取消Abort的请求,并
    阻止ThreadAbortException终止此线程。但是,线程不一定会立即中止,或者根本不中止。
    如果线程在作为中止过程的一部分被调用的finally块中做非常大量的计算,从而无限期延
    迟中止操作,则会发生这种情况。若要确保线程已经终止,请在调用Abort之后对线程调
    用Join方法。如果对尚未启动的线程调用Abort,则当调用Start时该线程将中止。如果
    对已挂起的线程调用Abort,则法线程将继续,然后终止。如果对被阻塞或正在休眠的线程
    调用Abort,则该线程被中断,然后中止。


     

  • 相关阅读:
    S1 商品信息管理系统
    用例图
    mvc使用mongodb时objectId序列化与反序列化
    windows下检測文件改变
    【Android 开发实例】时间管理APP开发之数据库设计
    设计模式 之 原型
    ANT安装及配置
    Java环境变量设置
    Win7安装软件,界面上中文显示乱码的解决方案
    Some perl tips
  • 原文地址:https://www.cnblogs.com/whitetiger/p/676856.html
Copyright © 2011-2022 走看看