synchronized 的可重入的实现原理?

synchronized:怎么保证可见性、有序性、原子性

synchronized 怎么保证可见性?

synchronized 怎么保证有序性?

synchronized 怎么实现可重入的呢?