1、首先synchronied是一个修饰符,而ReentrantLock是一个类。
2、synchronied加锁释放锁是jvm自动的,而ReentrantLock是要主动lock,unlock,容易死锁,所以在使用的地方在finally里面做unlock。
3、synchronied是非公平锁,多个线程自旋等待拿到锁。ReentrantLock可是公平也可以是非公平,可以通过创建的时候设置参数
参考文章:Synchronized与ReentrantLock区别总结(简单粗暴,一目了然)_zxd8080666的博客-CSDN博客_reentrantlock和synchronized区别