When we use synchronized keyword in java, which synchronization primitive is used exactly? Lock, Semaphore, Monitor, Mutex ?

EDIT : How JVM implements the lock at the native level ?

Edit
Report