The current thread must own this object's monitor.

这是Object类中,wait方法的注释中的一段话,

这句话的意思是:wait()会释放对象的锁,所以调用wait的条件是一定要拥有对象的锁,所以wait方法应该放在synchronize里面,如下

package com.lin.thread;

public class ThreadWait {
    private Object lock;

    public ThreadWait(Object lock) {
        this.lock = lock;
    }


    public void testWait(){
        synchronized (lock) {
            System.out.println("start wait...");
            try {
                lock.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("end wait ...");
        }
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Object类位于java.lang包中,java.lang包有最基础的和核心的类,在编译时会自动导入; Obje...
    遇见你的故事阅读 671评论 0 0
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,733评论 0 11
  • 九种基本类型及封装类 基本类型booleanbytecharshortintlongdoublefloat 二进制...
    0f43ee70035e阅读 326评论 1 0
  • 本系列出于AWeiLoveAndroid的分享,在此感谢,再结合自身经验查漏补缺,完善答案。以成系统。 Java基...
    济公大将阅读 1,553评论 1 6
  • 嗡,占巴拉,杂勒扎耶,唆哈。 嗡,占巴拉,杂勒扎耶,唆哈。 嗡,占巴拉,杂勒扎耶,唆哈。 需要的可以私聊哦
    梓墨Jo阅读 175评论 0 1