用法:
synchronized修饰代码块或者方法,不需要手动释放,默认非公平
ReentrantLock需要手动调用,手动释放,能够控制公平机制,能够尝试获取和超时获取锁,能更好的控制锁行为,在需要通过线程提高性能的场景中,能比较好的操控
基本原理:
synchronized是靠管程(monitor)实现的,有锁升级,默认从轻量级锁开始升级,偏向锁需要添加启动参数(个人认为这玩意比较鸡肋),一旦升级后续线程都会使用重量级锁,不会降级
ReentrantLock是靠AQS框架实现的,每次都会CAS,然后才会升级
标签:手动,synchronized,区别,ReentrantLock,默认,升级,线程 From: https://www.cnblogs.com/benjerry/p/17556686.html