条件:N个Thread的run方法同时要synchronized一个lock。
1,当某1个线程调用notify函数,则这个线程在run函数被执行完毕前,其它线程并不会被调起。
2,当被阻塞的线程只有synchronized,没有调用wait函数,当其它线程释放锁后,这个线程会在等待队列中等待重新唤起。
3,当调用notifyAll时,其它所有线程(包括通过synchronized被阻塞的,调用wait等待的)都会在等待队列中等待重新唤起。
4,当调用notify时,其它所有线程只要一个会在等待队列中等待重新唤起。
5,线程只要是被synchronized阻塞的,一旦发现锁被其它线程释放,这个线程会等待执行。
6,notify函数只会唤醒一个wait的线程,notifyAll会唤醒所有wait的线程。
7,当用synchronized对某对象的引用进行上锁操作时,该对象的引用在synchronized内部不能重新申请对象,也不能引用另外一个对象。