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


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

Tags in this post...

面试题 相关文章推荐
mysql的最长数据库名,表名,字段名可以是多长
Apr 21 面试题
PHP面试题附答案
Nov 28 面试题
怎样让char类型的东西转换成int类型
Dec 09 面试题
怎样在程序里获得一个空指针
Jan 24 面试题
经典c++面试题三
Jul 08 面试题
Android interview questions
Dec 25 面试题
远东集团网络工程师面试题
Oct 20 面试题
什么叫做SQL注入,如何防止
Oct 04 面试题
软件测试工程师结构化面试题库
Nov 23 面试题
软件测试有哪些?什么是配置项?
Feb 12 面试题
什么是GWT的Entry Point
Aug 16 面试题
Python里面如何拷贝一个对象
Feb 17 面试题
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笔记之常用文件操作
2010/10/12 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
JavaScript 继承详解(四)
2009/07/13 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
Python下使用Scrapy爬取网页内容的实例
2018/05/21 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
python线性插值解析
2020/07/05 Python
在C#中如何实现多态
2014/07/02 面试题
后勤园长自我鉴定
2013/10/17 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
二手房买卖协议书
2014/04/10 职场文书
团队拓展活动总结
2014/08/27 职场文书
道歉短信大全
2015/05/12 职场文书
python pyhs2 的安装操作
2021/04/07 Python
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL