Java中sleep与wait方法有何本质差异?

2026-06-11 12:151阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计256个文字,预计阅读时间需要2分钟。

Java中sleep与wait方法有何本质差异?

区别+所属对象不同:sleep方法属于Thread类,wait方法属于object对象。唤醒方式不同:interrupt()方法可以中断sleep和wait方法。notify和notifyAll方法可以唤醒wait方法暂停的线程,sleep可以设置休眠时间。


区别

  • 所属对象不同:sleep方法属于Thread类的,wait方法属于object对象的。
  • 唤醒方式不同:interrupt()方法可以终端 sleep 和wait方法。notify和ntifyall方法可以唤醒wait方法的暂停,sleep可以设置指定的时间后唤醒。
  • 使用地方不同:sleep方法可以使用在非同步方法中,wait方法必须使用在同步代码块中。
  • 方法属性不同:wait是实例方法,而sleep是Thread 的静态方法。
  • 锁资源占用情况不同:wait会释放对象锁,而sleep不会释放对象锁。
  • 知识点补充

    Java中sleep与wait方法有何本质差异?

    线程的六大状态:

    1)六大状态概述:
    NEW:线程刚创建
    RUNNABLE:在JVM中正在运行的线程
    BLOCKED:调用join() 线程处于阻塞状态,等待监视锁,可以重新进行同步代码块中执行
    WAITING:wait()等待状态
    TIMED_WAITING:调用sleep(时间) wait(时间)方法可能导致线程处于等待状态
    TERMINATED:线程执行完毕,已经退出


    标签:方法区别

    本文共计256个文字,预计阅读时间需要2分钟。

    Java中sleep与wait方法有何本质差异?

    区别+所属对象不同:sleep方法属于Thread类,wait方法属于object对象。唤醒方式不同:interrupt()方法可以中断sleep和wait方法。notify和notifyAll方法可以唤醒wait方法暂停的线程,sleep可以设置休眠时间。


    区别

  • 所属对象不同:sleep方法属于Thread类的,wait方法属于object对象的。
  • 唤醒方式不同:interrupt()方法可以终端 sleep 和wait方法。notify和ntifyall方法可以唤醒wait方法的暂停,sleep可以设置指定的时间后唤醒。
  • 使用地方不同:sleep方法可以使用在非同步方法中,wait方法必须使用在同步代码块中。
  • 方法属性不同:wait是实例方法,而sleep是Thread 的静态方法。
  • 锁资源占用情况不同:wait会释放对象锁,而sleep不会释放对象锁。
  • 知识点补充

    Java中sleep与wait方法有何本质差异?

    线程的六大状态:

    1)六大状态概述:
    NEW:线程刚创建
    RUNNABLE:在JVM中正在运行的线程
    BLOCKED:调用join() 线程处于阻塞状态,等待监视锁,可以重新进行同步代码块中执行
    WAITING:wait()等待状态
    TIMED_WAITING:调用sleep(时间) wait(时间)方法可能导致线程处于等待状态
    TERMINATED:线程执行完毕,已经退出


    标签:方法区别