synchronized是关键字,底层实现是依赖编译后的指令来实现 是隐式锁,自动添加,自动释放(任务执行完或出现异常) 可以修饰代码块和方法 需要靠对象头中的锁标志记录锁的状态 是非公平锁(等待锁的过程,不需要排队,锁释放谁抢到谁执行) ReentrantLock是类,依赖代码控制 是显式锁,手动添加,手动释放 只能修饰代码块,不能修饰方法 内部维护锁的状态标志,不需要传对象 是公平锁(等待需排队)
synchronized和ReentrantLock区别
最新推荐文章于 2024-08-04 11:07:52 发布