Java多线程sleep和wait的区别,总结得非常好。
来源:互联网 发布:少儿编程的书 编辑:程序博客网 时间:2024/05/16 23:41
我们都知道sleep是让线程休眠,到时间后会继续执行,wait是等待,需要唤醒再继续执行,那么这两种方法在多线程中的表现形态,它们各有什么区别呢?
可以总结为以下几点。
使用上
从使用角度看,sleep是Thread线程类的方法,而wait是Object顶级类的方法。
sleep可以在任何地方使用,而wait只能在同步方法或者同步块中使用。
CPU及资源锁释放
sleep,wait调用后都会暂停当前线程并让出cpu的执行时间,但不同的是sleep不会释放当前持有的对象的锁资源,到时间后会继续执行,而wait会放弃所有锁并需要notify/notifyAll后重新获取到对象锁资源后才能继续执行。
异常捕获
sleep需要捕获或者抛出异常,而wait/notify/notifyAll不需要。
推荐阅读
阿里高级Java面试题(首发,70道,带详细答案)
2017派卧底去阿里、京东、美团、滴滴带回来的面试题及答案
Spring面试题(70道,史上最全)
17张图揭密支付宝系统架构
阿里巴巴,排行前10的开源项目!
2018年必看:关于区块链技术的10本书
分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。
阅读全文
0 0
- Java多线程sleep和wait的区别,总结得非常好。
- 总结:Java多线程中wait和sleep的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- java多线程 sleep()和wait()的区别
- 2017最流行的IDE之争,Eclipse夺冠
- angularjs遍历集合添加值表格进行删除
- Java多线程神器:join使用及原理
- 神奇,教你用随机数打印hello world
- Java管理Cookie增删改查操作。
- Java多线程sleep和wait的区别,总结得非常好。
- jps命令:查看Java进程等详细信息
- jstack命令:教你如何排查多线程问题
- 并查集初阶1 小希的迷宫
- jmap, jhat, jvisualvm:java堆内存对象分析利器
- 腾讯,排行前10的开源项目
- 【推荐】大众点评Java开发实时应用监控平台-CAT
- PyQt5+python3+pycharm开发环境配置
- 阿里祭出大器,Java代码检查插件