美文网首页
线程的停止

线程的停止

作者: 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对象是否已经是中断状态,但不清除状态标志

相关文章

  • 多线程_2_停止和暂停

    线程停止 停止线程是在多线程开发时很重要的技术点,掌握线程停止技术可以对线程的停止进行有效的处理。 停止线程的方法...

  • java并发之守护线程

    java中有两种线程,用户线程和守护线程用户线程:主线程停止时,用户线程不会停止守护线程:主线程停止时,守护线程也...

  • Java多线程核心技术笔记1

    线程停止 判断线程是否停止 测试当前线程是否停止,是指调用该方法的线程是否停止。如果当前状态为已停止,调用该方法返...

  • 线程停止总结

    1 单线程停止 2 线程池停止

  • Java中如何正确停止线程?两种停止线程最佳方法

    如何正确停止线程 使用 interrupt 来通知,而不是强制 1:普通情况停止线程 通知停止线程thread.i...

  • 线程状态

    线程的5个状态 目录 线程停止 线程休眠 线程礼让(不重要) 线程强制执行 线程状态观测 1. 线程停止 Warn...

  • 线程 7. 停止线程

    停止线程: 停止线程要注意的实现我们停止一个线程一般都会配合一个变量去控制。如果我们停止的是一个等待状态下的线程,...

  • 深入理解Java中停止线程

    一.停止线程会带来什么? 对于单线程中,停止单线程就是直接使用关键字return或者break,但是在停止多线程时...

  • 深入理解Java中停止线程

    一.停止线程会带来什么? 对于单线程中,停止单线程就是直接使用关键字return或者break,但是在停止多线程时...

  • 停止线程,守护线程, join方法

    停止线程 守护线程 join方法

网友评论

      本文标题:线程的停止

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