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


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

Tags in this post...

面试题 相关文章推荐
PHP解析URL是哪个函数?怎么用?
May 09 面试题
下面关于"联合"的题目的输出是什么
Aug 06 面试题
介绍一下内联、左联、右联
Dec 31 面试题
广州品高软件.net笔面试题目
Apr 18 面试题
Ref与out有什么不同
Nov 24 面试题
VLAN和VPN有什么区别?分别实现在OSI的第几层?
Dec 23 面试题
上海中网科技笔试题
Feb 19 面试题
linux面试题参考答案(5)
Nov 05 面试题
Linux中如何用命令创建目录
Jan 12 面试题
What is EJB
Jul 22 面试题
Java基础面试题
Jul 19 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
Jan 26 面试题
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 不错的学习资料
2009/02/06 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
$()JS小技巧
2007/07/21 Javascript
web前端开发也需要日志
2010/12/09 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
python字典排序实例详解
2015/05/20 Python
Python验证企业工商注册码
2015/10/25 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Django URL传递参数的方法总结
2016/08/28 Python
python 检查文件mime类型的方法
2018/12/08 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
荷兰之家英文站:Holland at Home
2016/10/26 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
河童之夏观后感
2015/06/11 职场文书
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL