问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么 Thread.stop和Thread.suspend等被废弃了

发布网友 发布时间:2022-04-23 02:27

我来回答

1个回答

热心网友 时间:2023-07-09 08:13

停止一个线程会导致其解锁其上被锁定的所有监视器(监视器以在栈顶产生ThreadDeath异常的方式被解锁)。如果之前被这些监视器保护的任何对象处于不一致状态,其它线程看到的这些对象就会处于不一致状态。这种对象被称为受损的 (damaged)。当线程在受损的对象上进行操作时,会导致任意行为。这种行为可能微妙且难以检测,也可能会比较明显。不像其他未受检的(unchecked)异常, ThreadDeath 悄无声息的杀死及其他线程。因此,用户得不到程序可能会崩溃的警告。崩溃会在真正破坏发生后的任意时刻显现,甚至在数小时或数天之后线程可以在几乎任何地方抛出 ThreadDeath 异常。由于这一点,所有的同步方法和(代码)块将必须被考虑得事无巨细。线程在清理第一个 ThreadDeath 异常的时候(在 catch 或 finally 语句中),可能会抛出第二个。清理工作将不得不重复直到到其成功。保障这一点的代码将会很复杂。那怎么来终止一个线程呢,例如,假设你的 applet 包含了 start 、 stop 和 run 方法: private Thread blinker; public void start() { blinker = new Thread(this); blinker.start(); } public void stop() { blinker.stop(); // 容易产品死锁 } public void run() { Thread thisThread = Thread.currentThread(); while (true) { try { thisThread.sleep(interval); } catch (InterruptedException e){ } repaint(); } }为了避免使用 Thread.stop ,你可以把applet的stop和run方法替换成:rivate volatile Thread blinker; public void stop() { blinker = null; } public void run() { Thread thisThread = Thread.currentThread(); while (blinker == thisThread) { try { thisThread.sleep(interval); } catch (InterruptedException e){ } repaint(); } }为什么 Thread.suspend 和Thread.resume 被废弃了?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 广州电信宽带哪里办理最方便? if((0==stop)&&(0==suspend))表示什么意思 在c语言中 电信宽带2MB包年780元 全广州均可安装! 这个可以通过哪里申报呢? 一个小型传感器的运行和停止,英文用哪2个词 请问现在在广州装电信宽带要多少钱?网费多少钱一个月? 词汇精选:suspend的用法和辨析 广州这边安装城中村电信宽带要多久才能安装好 为什么线程会放弃Suspend和Resume方法 在广州安装电信宽带收费标准是什么, 暂停时间 英语用Pause Time好,还是suspend time? 广州电信宽带第一年报装需要多少钱 ava中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 装的是780元2M的广州电信宽带,因工作地点从白云换到增城,请问此宽带套餐是否可以迁移的? 如何停止java线程 广州装电信宽带的初装费是多少? 我爱学Java之Thread中stop,suspend,resume为什么不安全 请问在广州装电信宽带需要什么手续啊具体收费是怎么样的啊?听说还要暂住证是真的吗? java多线程为什么弃用stop和suspend 广州这边安装城中村电信宽带要多久才能安装好啊? 增城 装什么宽带好 电信我这边没资源了。装不了 其他还有什么好用的宽带吗 速度一定要快 java suspend()的问题 剪映怎么加siri声音? 抖音怎么用Sjri配音? 抖音上很火的 siri读的话有哪些? 怎么样才能弄成像Siri的声音? OPPO手机抖音怎么把声音改为Siri? vivo怎么能抖音上的siri声音? siri作为AI声音已经非常优秀了,多少钱能做一个同级别的? vivo钱包借钱,暂时没钱还,怎么关闭自动扣费? ...搞笑视频的机器人女声音是怎么做的,有点像siri的声音但又不是?_百... 抖音主播用什么软件在oppo手机变siri音? 什么软件拍视频有字幕可以配音,siri? second和next发音相同吗? next和me发音相同吗? next和very发音相同吗? 与next ,best,else的e相同音标的单词 forst next clever 哪个e发音认同? 与“耐斯特”发音最像的英文,如nice,next.帮忙多想几个。谢谢。要块! seng和,next发音是否相同? pet中的e与next中的e发音相同吗