博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
被废弃的 Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit
阅读量:4557 次
发布时间:2019-06-08

本文共 484 字,大约阅读时间需要 1 分钟。

最近学习多线程的知识,看到API里说这些方法被废弃了,就查了一下原因

Thread.stop

这个方法会解除被加锁的对象的锁,因而可能造成这些对象处于不一致的状态,而且这个方法造成的ThreadDeath异常不像其他的检查期异常一样被捕获。

可以使用interrupt方法代替。事实上,如果一个方法不能被interrupt,那stop方法也不会起作用。

 

Thread.suspend, Thread.resume

这俩方法有造成死锁的危险。使用suspend时,并不会释放锁;而如果我想先获取该锁,再进行resume,就会造成死锁。

可以使用object的wait和notify方法代替。wait方法会释放持有的锁。

 

Runtime.runFinalizersOnExit 

这个方法本身就是不安全的。它可能导致终结器(finallizers)被在活动对象上被调用,而其他线程正在并发操作这些对象。而且,这个调用不是“线程安全”的,因为它设置了一个VM全局标志。

转载于:https://www.cnblogs.com/bethunebtj/p/5806749.html

你可能感兴趣的文章
滚动条隐藏兼容写法
查看>>
SQL2005查询所有表的大小
查看>>
Shell 正则表达式
查看>>
Docker run命令参数整理
查看>>
qt-opencv配置mingw编译器
查看>>
CSS之Medial Queries的另一用法:实现IE hack的方法
查看>>
linux-CentOS6.4下安装oracle11g详解
查看>>
实力为王 八年DBA经验谈
查看>>
2-sat 问题 【例题 Flags(2-sat+线段树优化建图)】
查看>>
ext3.2 右击动态添加node的treepanel
查看>>
Database links
查看>>
1035 插入与归并(25 分)
查看>>
STL中排序函数的用法(Qsort,Sort,Stable_sort,Partial_sort,List::sort)
查看>>
如何解决php 生成验证码图片不显示问题
查看>>
PHP,javascript实现大文件上传
查看>>
c#图像处理算法学习
查看>>
webApi之FromUri和FromBody区别
查看>>
【SoapUI】http接口测试
查看>>
各种工具网站
查看>>
数据库事务
查看>>