Synchronized和Lock的区别

1、synchronized是java关键字,lock是一个java类

2、synchronized无法判断获取锁的状态,lock可以判断是否获得到锁

3、synchronized自动释放锁,lock必须要手动释放锁,否则会出现死锁状态

4、当有两个线程1、2时,线程1获得锁但是出现了阻塞,此时synchronized方式会让线程2持续等待,造成损失,lock方式不一定会一直等待,可能会使用trylock方法尝试获取锁

5、synchronized可重入、不可以中断、非公平,lock可重入、可以判断锁、可以自己设置公平还是非公平,在ReentrantLock方法中加入参数,默认是非公平

6、synchronized适合锁少量代码同步问题,lock适合锁大量代码同步问题

posted @ 2022-08-03 14:43  李哥不会扣篮  阅读(300)  评论(0)    收藏  举报