JDK的suspend、resume为什么废弃?

556 阅读1分钟
  1. 使用不当,造成同步方法独占,其他线程无法访问,造成死锁。
  2. 容易出现线程的暂停导致数据不同步。 Thread.suspend 天生容易引起死锁。如果目标线程挂起时在保护系统关键资源的监视器上持有锁,那么其他线程在目标线程恢复之前都无法访问这个资源。如果要恢复目标线程的线程在调用 resume 之前试图锁定这个监视器,死锁就发生了。这种死锁一般自身表现为“冻结( frozen )”进程。

GC是一个守护线程