|
|
51CTO旗下网站
|
|
移动端

1.2.3 wait和sleep的区别

《Java多线程与Socket:实战微服务框架》第1章多线程基础,本书尽量采用简要和通俗易懂的方式来介绍多线程知识。本节为大家介绍wait和sleep的区别。

作者:庞永华来源:电子工业出版社|2019-03-26 15:44

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

1.2.3 wait和sleep的区别

读者可能注意到了上面介绍的方法中没有wait()。原因是wait()方法是所有Object类的方法,是线程同步的重要手段之一(参见1.6.2节)。虽然两者都可以让程序阻塞指定的毫秒数,并且都可以通过interrupt()方法打断,但两者有很大的不同:

. wait()方法必须在synchronized同步块或方法中使用。

. wait()方法会释放由synchronized锁上的对象锁,而sleep()则不会。

. 由wait()方法形成的阻塞,可以通过针对同一个对象锁的synchronized作用域调用notify()/notiyAll() 来“唤醒”;而sleep()则无法被“唤醒”,其只能定时醒来或被interrupt()方法中断。


喜欢的朋友可以加入官方的读书群

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

Jenkins Pipeline可持续化集成

Jenkins Pipeline可持续化集成

优化运维流水线
共3章 | youerning

198人订阅学习

笑熬浆糊之职场那些事

笑熬浆糊之职场那些事

IT人的职场心法
共22章 | Bear_Boss

79人订阅学习

Redis运维秘籍

Redis运维秘籍

运维标配技术
共15章 | one叶孤舟

199人订阅学习

读 书 +更多

软件设计师考试全真模拟试题及解析

本书是按照全国计算机技术与软件专业技术资格(水平)考试《软件设计师考试大纲》的要求,参照《软件设计师教程》及近年来考试试题编写的,...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客