【转载】java sleep和wait的区别的疑惑?

【转载】java sleep和wait的区别的疑惑?

首先,要记住这个差别,“sleep是Thread类的方法,wait是Object类中定义的方法”。尽管这两个方法都会影响线程的执行行为,但是本质上是有区别的。

  • Thread.sleep不会导致锁行为的改变,如果当前线程是拥有锁的,那么Thread.sleep不会让线程释放锁。如果能够帮助你记忆的话,可以简单认为和锁相关的方法都定义在Object类中,因此调用Thread.sleep是不会影响锁的相关行为。
  • Thread.sleep和Object.wait都会暂停当前的线程,对于CPU资源来说,不管是哪种方式暂停的线程,都表示它暂时不再需要CPU的执行时间。OS会将执行时间分配给其它线程。区别是,调用wait后,需要别的线程执行notify/notifyAll才能够重新获得CPU执行时间。
  • 线程的状态参考 Thread.State的定义。新创建的但是没有执行(还没有调用start())的线程处于“就绪”,或者说Thread.State.NEW状态。
  • Thread.State.BLOCKED(阻塞)表示线程正在获取锁时,因为锁不能获取到而被迫暂停执行下面的指令,一直等到这个锁被别的线程释放。BLOCKED状态下线程,OS调度机制需要决定下一个能够获取锁的线程是哪个,这种情况下,就是产生锁的争用,无论如何这都是很耗时的操作。

     

    作者:孙立伟
    链接:https://www.zhihu.com/question/23328075/answer/24228413
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

    发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119351.html原文链接:https://javaforall.net

    (0)
    全栈程序员-站长的头像全栈程序员-站长


    相关推荐

    • 爱,该放弃吗_有一种爱叫做放手

      爱,该放弃吗_有一种爱叫做放手爱,绝不是缺了就找,更不是累了就换。   找一个能一起吃苦的,而不是一起享受的   找一个能一起承担的,而不是一起逃避的   找一个能对你负责的,而不是对爱情负责的   爱情是盲目的,生活是现实的   因为爱情只不过是人类为了逃避现实而衍生的产品   为了逃避现实,我寻找爱情   为了寻找爱情,我失去真情   失去了真情,才发现早已身陷虚情.   你以为爱情是什么?   一点点的动心,一点点的冲动

      2026年2月3日
      5
    • noip2015_noip2021复赛

      noip2015_noip2021复赛扩展欧几里得模板题。注意取模。#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#definein(x)scanf("%d",&x)#definelin(x)scanf("%lld",&x)#defineout(x)printf("%d",x)#defin…

      2022年8月22日
      8
    • 从0开始学python_python37从零开始学

      从0开始学python_python37从零开始学如何用python进行期货程序化交易、程序化交易系统目前主要是通过计算机程序实现的,其实就是把交易者决策的过程用计算机语言描述出来,然后由计算机给出交易建议或直接发送交易指令到期货公司的。SDYGDFHFGJFGFTYKGHKTY你就是想找个软件或者券商的接口去上传交易指令,你前期的数据抓取和分析可能python都写好了,所以差这交易指令接口最后一步。对于股票的散户,正规的法子是华宝。国内量化交易…

      2022年10月8日
      4
    • 阿里产品大大:react项目这块用aceEditor代码编辑器吧,小姐姐看完都会的教程,你还不会????

      阿里产品大大:react项目这块用aceEditor代码编辑器吧,小姐姐看完都会的教程,你还不会????大家好,我是:じ☆ve朽木,开发经验都是一步一步慢慢积累的,没有谁生来就具有的,只要我们付出了努力,肯定就会有收获!进入我的博客,带你了解Java知识,js小技巧,带你玩转高端物联网。博客地址为:じ☆ve朽木。react项目中有个需求需要对接一个代码编辑器,查看了antdesign官方社区精选组件提供了两款代码编辑器,有一款是微软推出的,但是代码提示不是很友好,最后需求又查看了阿里云的相关…

      2022年6月29日
      29
    • python 股票数据接口(深市股票什么开头)

      根据上交所2017年5月公告的文件显示,拿到L1普通行情数据授权的有112家公司,L2授权的有25家,我这里只贴出L2数据的厂家,如果想看L1的授权公司或者深交所的授权情况可以自己去查,太多了就不贴了。1.上海大智慧股份有限公司2.深圳巨灵信息技术有限公司3.浙江核新同花顺网络信息股份有限公司4.北京指南针科技发展股份有限公司5.鼎信汇金(北京)投资管理有限公司6.上海乾隆高科技有限公…

      2022年4月13日
      78

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    关注全栈程序员社区公众号