Java中的锁

java.util.concurrent.locks.ReentrantLock

提供了比synchronized提供更灵活的锁,可以设置为公平锁,非公平锁,能够带超时时间获取公平锁等等。
synchronized

Java默认提供,由JVM提供。但是因为JVM的黑盒子特性,锁特性会在运行中发生变化。

具体可以翻阅一下这篇文章

synchronized、锁、多线程同步的原理是咋样的

两种锁的性能测试结果