synchronized原理:
同步塊:在class文件中按价,synchronized代碼塊的頭尾會插入monitorenter和monitorexit惭适,當(dāng)一個對象進(jìn)入了synchronized的代碼塊,那么這個對象的monitor就進(jìn)入了同步塊楼镐,這個時候線程就獲取到了這個對象的鎖癞志,當(dāng)代碼塊執(zhí)行完,monitor退出框产,則線程就釋放了該對象的鎖凄杯。(注:每個對象的monitor在同一時間只能由一個線程持有)
同步方法:依靠方法監(jiān)視器上的ACC_SYNCHRONIZED來實現(xiàn)的
同步塊和同步方法都可以用monitor來實現(xiàn)