美文网首页
线程的停止

线程的停止

作者: atdoking | 来源:发表于2021-03-30 23:36 被阅读0次

    在Java中有以下3中方法可以终止正在运行的线程:

    1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止
    2. 使用stop方法强行终止线程,但是不推荐使用这个方法,因为stop和suspend级resume一样,都是作废过期的方法,使用它们可能产生不可预料的结果
    3. 使用interrupt方法中断线程
      大多数停止一个线程的操作使用Thread.interrupt()方法,尽管方法的名字是停止,中止的意思,但这个方法不会终止一个正在运行的线程,还需加入一个判断才可以完成线程的停止

    判断线程的煮给你太是不是停止的,在Java的SDK中,Thread.java类里提供了两种方法

    1. this.interrupted():测试当前线程是否已经中断
    2. this.isInterrupted(): 测试线程是否已经中断

    this.interrupted(),测试当前线程是否已经中断,当前线程是指运行this.interrupted()的方法的线程

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

    最后我们再次总结一下:

    • this.interrupted():测试当前线程是否已经是中断状态,执行后具有将状态标志置清除为false的功能
    • this.isInterrupted(): 测试线程Thread对象是否已经是中断状态,但不清除状态标志

    相关文章

      网友评论

          本文标题:线程的停止

          本文链接:https://www.haomeiwen.com/subject/oapnhltx.html