synchronized是基于monitor实现的,
线程在获取锁的时候,实际上是获取了一个 monitor 对象,然后用它来进行加锁的。