5. Synchronized vs ReentrantLock