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适合锁大量代码同步问题
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号