# 为什么stop和suspend以及resume都不建议使用了

现在的Java中它们都被标记为@Deprecated,也就是不建议使用,具体原因下面我们分类说明。

# stop

使用stop()能将线程直接中断,会有造成程序前后不一致,异常中断的问题,其次stop会释放当前线程获取的所有锁。总结为以下两点:

  1. 造成异常中断,程序前后不一致
  2. 释放当前线程持有的所有锁

# suspend&resume

由于suspend使用之后需要其他线程对其调用resume来恢复,在实际使用时容易发生死锁的情况:当前A线程调用suspend,B线程在获取一个锁对象之后则会调用A线程的resume,但此时锁对象已经被A线程获取了,造成死锁。

修改于: 8/11/2022, 3:17:56 PM