做线程同步的时候一般都使用synchronized关键来修饰方法,很多人认为这个锁只是锁定该方法而已,但是其本质是锁定该对象(如A对象);
当一个线程调用一个synchronized修饰的方法,那么其他的线程就不能再调用该方法,即当前线程把这个方法体锁住了;
但是其他线程可以调用该对象(A对象)的其他非synchronized的方法来修改A对象的某些成员变量的值;如要锁住A对象的某些变量不能被同时修改,那个凡是修改该变量的方法必须加上synchronized修饰;
关于wait()方法,该方法是object里的方法,其作用是使当前调用某synchronized方法的线程暂停,注意是线程wait 而不是对象wait ,并且使用wait的方法必须是synchronized的方法