synchronized关键字的理解

第一,记住wait必须要进行异常捕获,否则编译时会抛出 InterruptedException异常


第二,记住调用wait或者notify方法必须采用当前锁调用,即必须采用synchronized中的对象,否则抛出IllegalMonitorStateException
这样子为了线程同步,需要获取synchronized的对象锁时,才能执行synchronized代码块中的内容,且当此对象执行了wait()方法时,此线程会挂起,并会释放锁对象,
notify会唤醒此对象线程池中堵塞的线程进入等待状态,注意此方法不会释放锁,会执行完synchronized代码块中的内容(如果在代码块中调用的话)

原文地址:https://www.cnblogs.com/nyhhd/p/12545783.html