线程发生异常首先,线程发生异常线程被打断, 要分情况说:主线程发生异常, 会停止运行;子线程发生异常, 主线程却不为所动, 扔会继续运行;主线程try-catch也捕捉不到;那怎么捕捉呢?2.1. 在子线程本身run方法中try-catch可以;2.2. 在主线程中实现自己的UncaughtExceptionHandler,并设置为子线程的处理器, 捕捉子线程中的异常(生产上可以用来记录日志, 发布告警系统等)调用stop()stop()方法已被标注 @Deprecated API中明确说明:使用Thread.stop停止线程可以解锁所有已锁定的监视器, 如果先前受这些监视器保护的任何对象处于不一致的状态,则损坏的对象将变得对其他线程可见,可能导致任意行为线程被强制停止也就是容易造成脏数据, 导致不安全正确停止线程的方法应该想需要被停止的线程调用interrupt()发送中断信号, 然后由接收信号的线程来监控并处理(或停止); 这才是正确的优雅的停止线程的方式;希望对你有用!
线程发生异常
首先,线程发生异常线程被打断, 要分情况说:
主线程try-catch也捕捉不到;那怎么捕捉呢?
2.1. 在子线程本身run方法中try-catch可以;
2.2. 在主线程中实现自己的UncaughtExceptionHandler,并设置为子线程的处理器, 捕捉子线程中的异常(生产上可以用来记录日志, 发布告警系统等)
调用stop()
stop()方法已被标注
@Deprecated
API中明确说明:也就是容易造成脏数据, 导致不安全
正确停止线程的方法
应该想需要被停止的线程调用interrupt()发送中断信号, 然后由接收信号的线程来监控并处理(或停止); 这才是正确的优雅的停止线程的方式;
希望对你有用!