zoukankan      html  css  js  c++  java
  • Thread--停止线程

    参考:http://blog.sina.com.cn/s/blog_6ca570ed01016mti.html

    Thread.interrupt()方法不会中断一个正在运行的线程。它的作用是,在线程受到阻塞时抛出一个中断信号,这样线程就得以退出阻塞的状态。更确切的说,如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞,那么,它将接收到一个中断异常(InterruptedException),从而提早地终结被阻塞状态。

    interrupt方法并不是强制终止线程,它只能设置线程的interrupted状态,而在线程中一般使用一下方式:
    while (!Thread.currentThread().isInterrupted() && more work to do)

    {...}

    判断线程是否是停止状态:

    interrupted

    public static boolean interrupted()
    测试当前线程是否已经中断。线程的中断状态 由该方法清除。换句话说,如果连续两次调用该方法,则第二次调用将返回 false(在第一次调用已清除了其中断状态之后,且第二次调用检验完中断状态前,当前线程再次中断的情况除外)。

    线程中断被忽略,因为在中断时不处于活动状态的线程将由此返回 false 的方法反映出来。

    返回:
    如果当前线程已经中断,则返回 true;否则返回 false

    isInterrupted

    public boolean isInterrupted()

    测试线程是否已经中断。线程的中断状态 不受该方法的影响。

    线程中断被忽略,因为在中断时不处于活动状态的线程将由此返回 false 的方法反映出来。

    返回:
    如果该线程已经中断,则返回 true;否则返回 false

    其他:

      异常停止

      return停止

    建议使用抛异常来实现线程停止,因为在catch块中还可以向上抛异常,使线程停止的时间得以传播。

      

    public static boolean interrupted()
    测试当前线程是否已经中断。线程的中断状态 由该方法清除。换句话说,如果连续两次调用该方法,则第二次调用将返回 false(在第一次调用已清除了其中断状态之后,且第二次调用检验完中断状态前,当前线程再次中断的情况除外)。

    线程中断被忽略,因为在中断时不处于活动状态的线程将由此返回 false 的方法反映出来。

    返回:
    如果当前线程已经中断,则返回 true;否则返回 false
  • 相关阅读:
    数组方法总结
    CSS3总结
    关于h5的一些知识整理
    如何去掉iview里面的input,button等一系列标签自带的蓝色边框
    CSS隐藏多余的文字
    百度搜索之历史搜索记录~
    transform相关~
    有关数组的相关知识~~
    [Javascript]js中所学知识点回顾总结
    js_随即生成多位验证码及变换颜色
  • 原文地址:https://www.cnblogs.com/microcat/p/6323025.html
Copyright © 2011-2022 走看看