synchronized与lock的差异

1、synchronized是Java中的一个关键字,Lock是一个java 类;

2、synchronized无法判断获取锁的状态,而Lock可以判断是否获得锁;

3、synchronized会自动释放锁,而Lock必须要手动释放锁,如果不释放锁则会产生死锁;

4、synchronized线程1(获得锁,阻塞)、线程2(等待,傻傻的等);Lock锁就不一定会等下去---》lock.tryLock();

5、synchronized为可重入锁,不可以中断的,非公平的;Lock锁,可重入锁,可以判断锁,非公平(源码中构造方法,true为公平,false为非公平,默认为false);

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。