Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?


Posted in 面试题 onAugust 04, 2015
有两种实现方法,分别是继承Thread类与实现Runnable接口
用synchronized关键字修饰同步方法
反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被”挂起”的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。

Tags in this post...

面试题 相关文章推荐
一套PHP的笔试题
May 31 面试题
类的核心特性有哪些
Jan 01 面试题
深圳-东方伟业笔试部分
Feb 11 面试题
面向对象概念面试题(.NET)
Nov 04 面试题
能否解释一下XSS cookie盗窃是什么意思
Jun 02 面试题
说出你对remoting 和webservice的理解和应用
Jun 08 面试题
介绍一下linux的文件系统
Mar 20 面试题
LINUX下线程,GDI类的解释
Dec 14 面试题
北京麒麟网信息技术有限公司网络游戏测试面试题
Sep 28 面试题
为什么Runtime.exec(“ls”)没有任何输出?
Oct 03 面试题
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
Mar 12 面试题
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
Oct 13 面试题
error和exception有什么区别
Oct 02 #面试题
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
May 24 #面试题
HashMap和Hashtable的区别
May 18 #面试题
Weblogc domain问题
Jan 27 #面试题
Collection和Collections的区别
May 02 #面试题
如何将整数int转换成字串String
Mar 21 #面试题
如何将字串String转换成整数int
Feb 21 #面试题
You might like
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
php连接mssql数据库的几种方法
2013/02/21 PHP
跟我学Laravel之路由
2014/10/15 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
php数据访问之查询关键字
2016/05/09 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
将string解析为json的几种方式小结
2010/11/11 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
Python实现的彩票机选器实例
2015/06/17 Python
python正则表达式之对号入座篇
2018/07/24 Python
设置python3为默认python的方法
2018/10/31 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
django框架两个使用模板实例
2019/12/11 Python
python实现打砖块游戏
2020/02/25 Python
python属于解释型语言么
2020/06/15 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
上班玩游戏检讨书
2014/02/07 职场文书
化学专业自荐信
2014/05/28 职场文书
工资收入证明
2014/10/07 职场文书
房屋买卖协议样本
2014/11/16 职场文书
毕业实习感受与体会
2015/05/26 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
如何Python使用re模块实现okenizer
2022/04/30 Python