为什么wait方法必须在同步(synchronized)代码块/方法中调用
调用wait就是释放锁,释放锁的前提是必须先获得锁,先获得锁才能释放锁。
为什么notify,notifyall必须在同步(synchronized)代码块/方法中调用
notify,notifyall是让入口队列中的线程竞争锁,如果自身没有锁,怎么能让入口队列中的线程竞争锁呢。
wait后的代码会执行
class BlockingQueue {
Queue<String> buffer = new LinkedList<