关于同步,以前如果碰到了多线程的问题,那么首先想到的是synchronized 关键字,给方法,或者代码块加上synchronized,但是synchronized也有不少缺点,比如它释放锁只有两个条件:1.程序正常结束,锁被释放2.程序发生异常,锁被释放。除了这两种情况,锁是不会被释放的。可以使用Lock代替synchronized关键字。关于lock的使用,参考 http://www.cnblogs.com/dolphin0520/p/3923167.html