- 挂起(suspend)、 继续执行(resume):
- 这两个操作是一对相反的操作,被挂起来的线程,必须要等到resume()方法操作后,才能继续执行。
- 这对操作和Thread.stop()方法一样好用。但是也早已标注为废弃方法,并不推荐使用。
- 废弃原因:
- suspend()方法在导致线程暂停的同时,并不会释放任何资源。
- 此外,其他任何线程想要访问被它占用的锁时,都会被牵连,导致无法正常继续运行。直到对应的线程进行了resume() 方法操作,被挂起的线程才能继续,从而其他所有阻塞在相关锁上的线程也可以继续执行。
- 这时候如果resume()方法操作在suspend()之前就执行 了,那么被挂起的线程则很难被继续执行。
- 更严重的是,从它的线程状态上看,还是Runnable,会影响对系统当前状态的判断。
大厂之路一由浅入深、并行基础、源码分析一S、R(已废弃)
本文探讨了Thread类中已废弃的suspend()和resume()方法,指出它们在暂停线程时不释放资源,可能导致其他线程阻塞。由于这些问题,这俩方法不再推荐使用,可能会引起死锁和不可预测的系统状态。建议采用更安全的线程同步机制,如使用wait()和notify()或者使用Lock接口来管理线程的执行。
摘要由CSDN通过智能技术生成