2.2.3 synchronized是可重入锁吗?其底层如何实现?