面试常见问题:java中wait()和sleep()方法的区别
2024-09-01 05:29:30
wait()和sleep()方法都是用来控制多线程的有力工具,那么它们之间有什么巨大的区别呢?
1、wait()方法是属于Object类的,而sleep()方法是属于Thread类的。
2、最重要的一点:
当一个线程sleep()的时候,它会一直睡在那里不动,也没人去吵醒它,它会根据预先设定的睡眠时间,然后自己醒过来。但是它睡着的时候,如果手里有锁,那就一直抱着对资源的锁不松开,让其它线程也无法得到这个锁,是一种贪婪的做法!
当一个线程wait()的时候,(有一个前提,它必须拥有对资源的锁,否则也无所谓即没有资格wait()),它也会像sleep()那样睡过去,但是它的素质却高了,它睡着的时候会放开它手里对资源的锁,供其他线程去使用!!!与wait()方法相呼应的方法是Object类里的notify()方法,这个方法就是用来叫醒wait()在这个资源对象上的线程!!!
内容虽然很基础但是真的很重要,希望大家多多指正,共同进步!!!
最新文章
- Linux用户态和内核态
- 安天AVL联合小米MIUI首擒顽固病毒“不死鸟”
- Cocos2d 利用继承Draw方法制作可显示三维数据(宠物三维等)的三角形显示面板
- Python for Infomatics 第12章 网络编程五(译)
- angular 指令作用域 scope
- 安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具
- 【前端盲点】DOM事件流论证CSS盒模型是否具有厚度
- (三)在js(jquery)中获得文本框焦点和失去焦点的方法
- windows store app promise
- 小程序原理,生成SQL SERVER 2008 数据库所有表的结构文档
- Changing a Service's Configuration
- bzoj 1912 巡逻(树直径)
- 虚拟机安装windows7 VMware12 安装window7
- codeforces 1151 A
- 解决git 不同branch 下node_moudes不同步的问题
- css3中那些鲜为人知但又很有用的属性
- php基础知识考察点:正则表达式
- 第十次作业psp
- oracle 之 安装10.2.0.1 且 升级到 10.2.0.4
- js 对象数组删除和查找的方法