b2c信息网

您现在的位置是:首页 > 热点问题 > 正文

热点问题

rantlock源码分析的简单介绍

hacker2022-06-10 17:36:19热点问题57
本文目录一览:1、多线程syschronized和reentrantrantlock哪个好

本文目录一览:

多线程 syschronized 和reentrantrantlock哪个好

总的来说,lock更加灵活。

主要相同点:Lock能完成synchronized所实现的所有功能

不同:

1.ReentrantLock功能性方面更全面,比如时间锁等候,可中断锁等候,锁投票等,因此更有扩展性。在多个条件变量和高度竞争锁的地方,用ReentrantLock更合适,ReentrantLock还提供了Condition,对线程的等待和唤醒等操作更加灵活,一个ReentrantLock可以有多个Condition实例,所以更有扩展性。

2.ReentrantLock必须在finally中释放锁,否则后果很严重,编码角度来说使用synchronized更加简单,不容易遗漏或者出错。

3.ReentrantLock 的性能比synchronized会好点。

4.ReentrantLock提供了可轮询的锁请求,他可以尝试的去取得锁,如果取得成功则继续处理,取得不成功,可以等下次运行的时候处理,所以不容易产生死锁,而synchronized则一旦进入锁请求要么成功,要么一直阻塞,所以更容易产生死锁。

发表评论

评论列表

  • 鹿岛假欢(2022-06-11 01:24:23)回复取消回复

    一个ReentrantLock可以有多个Condition实例,所以更有扩展性。2.ReentrantLock必须在finally中释放锁,否则后果很严重,编码角度来说使用synchronized更加简单,不容易遗漏或者出错。3.ReentrantLock 的性能比