区分 wait() sleep()

来源:互联网 发布:外国法制史 知乎 编辑:程序博客网 时间:2024/06/06 06:34
  1. 所属类:wait()是Object中的方法,sleep()是Thread中的静态方法
  2. 锁:sleep只是让当前线程让出cpu给其他线程,不会释放对象锁;wait是进入对象的 wait pool池中,会释放对象锁。
  3. 使用范围:3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
    任何地方使用
    synchronized(x){
    x.notify()
    //或者wait()
    }

    两者相同点:都需要捕获InterruptedException异常。

其它: yield,Thread的静态方法,短暂让出cpu,让相同优先级或更高优先级的线程获得运行机会,一般调试时才用。

这里写图片描述

原创粉丝点击