zoukankan      html  css  js  c++  java
  • 2020-09-15:java里的wait()和sleep()的区别有哪些?

    福哥答案2020-09-15:#福大大架构师每日一题#

    1.线程状态。wait()的线程状态是TimedWaiting和Waiting。sleep()的线程状态是Waiting。
    2.指定时间。wait()可以指定时间也可以不指定时间。sleep()必须指定时间。
    3.释放锁。wait()释放锁并且加入等待队列,常用于线程间交互。sleep()不会释放锁,常用于暂停执行。
    4.同步块。wait()需要在同步块里使用,否则抛出IllegalMonitorStateException异常。sleep()不需要。
    5.所在类。wait()是Object里的方法。sleep是Thread里的静态方法。
    6.唤醒。wait()需要被唤醒(不指定时间需要被别人唤醒),notify()、notifyAll()、interrupt()。sleep()不需要被唤醒(休眠之后退出阻塞),时间到或者interrupt()。
    7.捕获异常。wait()没指定时间不需要捕获异常,指定了时间需要捕获异常。sleep()需要捕获异常。
    ***
    [评论](https://user.qzone.qq.com/3182319461/blog/1600124842)

  • 相关阅读:
    D
    NOI 1.7编程基础之字符串(35题)
    HYSBZ 2145 悄悄话
    POJ 2406 Power Strings
    POJ 3461 Oulipo[附KMP算法详细流程讲解]
    POJ 3974 Palindrome
    POJ 1002 487-3279
    POJ 1182 食物链
    POJ 2524 Ubiquitous Religions
    HDU 1251 统计难题
  • 原文地址:https://www.cnblogs.com/waitmoon/p/13675782.html
Copyright © 2011-2022 走看看