Lock和synchronized的对比

 

1.1.synchronized 只能实现单线程的读写,一旦多个线程要同时访问一个资源,就只有一个线程可以开启访问,其余线程只能等待,非常影响性能。所以如果使用的话,一定要尽量减小锁的粒度,到代码快级。

1.2.synchronized 不需要手动释放锁,发生异常的时候会自动释放;但是Lock必须要自己手动释放,如果没有手动释放的话,会导致死锁,所以使用的时候必须有try finally

1.3.可以提高多线程的读写效率,读读共享,写写互斥,读写互斥。

1.4.Lock 在锁住的时候可以中断锁,但是如果是 synchronized的话 就必须要一直等待。

1.5.Lock可以释放特定的锁,synchronized 不能。

1.6.Lock是一个接口、synchronized 是内置的语言实现,而且lock的源代码进行锁定的时候用的也是synchronized 关键字。

1.7.Lock可以知道有没有成功获取到锁,synchronized 无法办到。

如果资源竞争不激烈,那么两者性能差不多,如果竞争非常激烈的话,Lock性能要好很多。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值