本帖最后由 王钊 于 2013-2-16 11:07 编辑
Java中的每个对象都有一个锁(lock),当访问某个对象的synchronized方法时,表示将该对象上锁,此时其他任线程都无法去访问该synchronized方法了,
直到之前的那个线程执行方法完毕后(或者是抛出了异常),那么将该对象的锁释放掉,其他线程才有可能再去访问该synchronized方法。
如果一个对象有多个synchronized方法,某一时刻某个线程已经进入到了某个synchronized方法,那么在该方法没有执行完毕前,其他线程是无法访问该对象的
任何synchronized方法的。 |