博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java多线程sleep和wait的区别,总结得非常好。
阅读量:6925 次
发布时间:2019-06-27

本文共 435 字,大约阅读时间需要 1 分钟。

image

我们都知道sleep是让线程休眠,到时间后会继续执行,wait是等待,需要唤醒再继续执行,那么这两种方法在多线程中的表现形态,它们各有什么区别呢?

可以总结为以下几点。

使用上

从使用角度看,sleep是Thread线程类的方法,而wait是Object顶级类的方法。

sleep可以在任何地方使用,而wait只能在同步方法或者同步块中使用。

CPU及资源锁释放

sleep,wait调用后都会暂停当前线程并让出cpu的执行时间,但不同的是sleep不会释放当前持有的对象的锁资源,到时间后会继续执行,而wait会放弃所有锁并需要notify/notifyAll后重新获取到对象锁资源后才能继续执行。

异常捕获

sleep需要捕获或者抛出异常,而wait/notify/notifyAll不需要。

推荐阅读


分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。

扫我关注

转载地址:http://zjjjl.baihongyu.com/

你可能感兴趣的文章
双绞线
查看>>
nginx反向代理学习笔记
查看>>
习题:打印如下图
查看>>
puppet练习记录一
查看>>
mysql 实现读写分离详解
查看>>
本地YUM源配置-Redhat Enterprise 5.9
查看>>
CDH 5.7.0 安装文档
查看>>
小小的公共库,大大的耦合,你痛过吗?
查看>>
VDI序曲二十一 APP-V 4.6 SP1服务器端部署
查看>>
我的友情链接
查看>>
centos6.3 下kvm安装配置详细流程
查看>>
考题纠错
查看>>
Flex sdk4.6及flex Builder 4.6下载地址
查看>>
使用js为下拉框赋值
查看>>
更多API知识学习
查看>>
空值排序(oracle/sqlserver)
查看>>
[letcode] 832 Flipping an Image
查看>>
Mybatis - 入门
查看>>
Snmp协议应用-扫描局域网内打印机
查看>>
51CTO下载中心
查看>>