Thread

作者: chrisghb | 来源:发表于2022-08-08 10:45 被阅读0次

    Thread-中断

    • interrupt()

    interrupt()用于中断线程,调用该方法的线程的状态将被置为"中断"状态。
    注意:线程中断仅仅是设置线程的中断状态位,不会停止线程。需要用户自己去监视线程的状态为并做处理。这里可以看到中断后该线程还在继续往下执行,并没有强制终止线程。

    1.如果线程在wait, sleep,join阻塞时,调用了interrupt()方法,会抛出InterruptedException异常,会清除中断标志位。
    2.如果不会中断sleep,wait,join方法或文档描述的其他情况,就不会抛InterruptException异常,就不会清除中断标志位。

    为了保证数据的一致性和完整性,我们需要用Thread.interrupt()方法再次中断自己,置上中断标志位。

    • interrupted()

    测试当前线程是否已经中断。调用interrupted()会清除中断标志位。

    • isInterrupted()

    测试线程是否已经中断。中断标志位 不受该方法的影响。

    join()

    主线程执行了subThread.join(),主线程会等待子线程执行完毕后,自己再执行。

    相关文章

      网友评论

          本文标题:Thread

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