为何stop()和suspend()方法不推荐使用 stop和suspend

stop()方法作为一种粗暴的线程终止行为,在线程终止之前没有对其做任何的清除操作,因此具有固有的不安全性。用Thread.stop()方法来终止线程将会释放该线程对象已经锁定的所有监视器。如果以前受这些监视器保护的任何对象都处于不连贯状态,那么损坏的对象对其他线程可见,这有可能导致不安全的操作。由于上述原因,因此不应该使用stop()方法,而应该在自己的Thread类中置入一个标志,用于控制目标线程是活动还是停止。如果该标志指示它要停止运行,可使其结束run()方法。如果目标线程等待很长时间,则应使用interrupt()方法来中断该等待。
suspend()方法该方法已经遭到反对,因为它具有固有的死锁倾向。调用suspend()方法的时候,目标线程会停下来。如果目标线程挂起时在保护关键系统资源的监视器上保持有锁,则在目标线程重新开始以前,其他线程都不能访问该资源。除非被挂起的线程恢复运行。对任何其他线程来说,如果想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。由于上述原因,因此不应该使用suspend()方法,而应在自己的thread类中置入一个标志,用于控制线程是活动还是挂起。如果标志指出线程应该挂起,那么用wait()方法命令其进入等待状态。如果标志指出线程应当恢复,那么用notify()方法重新启动线程。

为何stop()和suspend()方法不推荐使用 stop和suspend

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/240109.html

更多阅读

香水使用方法如何正确使用香水 擦香水的正确方法

香水使用方法如何正确使用香水——简介现在都市生活的人,出门的时候,在身上喷点香水以给别人留下好点的印象,但是你知道香水的正确使用方法吗?香水使用方法如何正确使用香水——方法/步骤香水使用方法如何正确使用香水 1、香水如何使用

避孕套的正确使用方法图解 如何使用避孕套图解

避孕套的正确使用方法(图解)——简介正确的使用避孕套才不会导致避孕失败避孕套的正确使用方法(图解)——方法/步骤避孕套的正确使用方法(图解) 1、选择适合自己的避孕套,不能过大或过小。打开包装向避孕套内吹气,如果漏气就说明这个套套破

淘宝购物车不能使用怎么办 淘宝购物车不能结算

淘宝购物车不能使用怎么办——简介在淘宝购物时,会经常使用到购物车功能,但是有时候会发现由于各种原因,购物车功能无法使用。那怎么办呢?希望本文可以帮到您。淘宝购物车不能使用怎么办——方法/步骤淘宝购物车不能使用怎么办 1、打开

声明:《为何stop()和suspend()方法不推荐使用 stop和suspend》为网友山涧晴岚分享!如侵犯到您的合法权益请联系我们删除