秋风问答网秋风问答网

Java多线程17:中断机制

概述

之前讲解Thread类中方法的时候,interrupt()、interrupted()、isInterrupted()三个方法没有讲得很清楚,只是提了一下。现在把这三个方法同一放到这里来讲,因为这三个方法都涉及到多线程的一个知识点----中断机制。

java 是怎么中断一个线程的,你真的搞懂了吗?interrupt()

Thread.stop()

当我们使用

启动线程的正确和错误方式&正确停止线程

一:启动线程的正确和错误方式

1.start()方法的执行流程

- 检查线程状态(只有线程为0(new)状态时才能启动线程,否则会抛异常,运行中或已经结束的状态均会抛异常)

线程专题(六):Java线程中断以及优雅的退出

线程中断

下面的这断代码大家应该再熟悉不过了,线程休眠需要捕获或者抛出线程中断异常,也就是你在睡觉的时候突然有个人冲进来把你吵醒了。

Java中线程的生命周期

怎么在java中关闭一个thread

我们经常需要在java中用到thread,我们知道thread有一个start()方法可以开启一个线程。那么怎么关闭这个线程呢?

有人会说可以用Thread.stop()方法。但是这个方法已经被废弃了。

根据Oracle的官方文档,Thread.stop是不安全的。因为调用stop方法的时候,将会释放它获取的所有监视器锁(通过传递ThreadDeath异常实现)。如果有资源该监视器锁所保护的话,就可能会出现数据不一致的异常。并且这种异常很难被发现。 所以现在已经不推荐是用Thread.stop方法了。

java 两阶段终止线程模式

两阶段终止线程的流程图

面试题:如何优雅的停止一个正在运行的java线程

线程状态转换图:

java 如何中断线程

能响应InterruptedException的常见方法

Object 全部wait方法

Java基础:java线程状态

线程的生命周期及五种基本状态

回到首页 发表评论 回到顶部