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
  • 相关阅读:
    Mongoose开启调试模式格式化输出
    MongoDB 区分大小写吗
    Potree
    mongo存储引擎
    获取mongo 数据大小及collection大小
    Nosql的发展
    spring 事务 完全注解开发
    spring 事务 声明式 基于XML
    spring 事务 声明式 基于注解 参数配置 isolation 隔离级别
    spring 事务 声明式 基于注解 参数配置 propagation 事务传播行为
  • 原文地址:https://www.cnblogs.com/microcat/p/6323025.html
Copyright © 2011-2022 走看看