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


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

Tags in this post...

面试题 相关文章推荐
你所知道的集合类都有哪些?主要方法?
Dec 31 面试题
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
Sep 08 面试题
说出数据连接池的工作机制是什么?
Apr 19 面试题
Java里面如何创建一个内部类的实例
Jan 19 面试题
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
May 09 面试题
北京RT科技有限公司.net工程师面试题
Feb 15 面试题
linux面试题参考答案(9)
Jan 29 面试题
Python是如何进行类型转换的
Jun 09 面试题
如何用Python来进行查询和替换一个文本字符串
Jan 02 面试题
String s = new String(“xyz”);创建了几个String Object?
Aug 05 面试题
关于Java finally的面试题
Apr 27 面试题
Unix如何添加新的用户
Aug 20 面试题
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中常用的输出函数总结
2014/09/22 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
ASP SQL防注入的方法
2008/12/25 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
jquery 3D球状导航的文章分类
2010/07/06 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
JavaScript知识点整理
2015/12/09 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Python多线程正确用法实例解析
2020/05/30 Python
python os模块在系统管理中的应用
2020/06/22 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
浅析NumPy 切片和索引
2020/09/02 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
为什么要用EJB
2014/04/17 面试题
活动总结新闻稿
2014/08/30 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL