ReentrantLock与synchronized的区别

2018-06-27 09:47:07来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

1、与synchronized相比,ReentrantLock提供了更多,更加全面的功能,具备更
    强的扩展性。例如:时间锁等候,可中断锁等候,锁投票。

    2、ReentrantLock还提供了条件Condition,对线程的等待、唤醒操作更加详细和
    灵活,所以在多个条件变量和高度竞争锁的地方,ReentrantLock更加适合(以后
    会阐述Condition)。

    3、ReentrantLock提供了可轮询的锁请求。它会尝试着去获取锁,如果成功则继
    续,否则可以等到下次运行时处理,而synchronized则一旦进入锁请求要么成功要
    么阻塞,所以相比synchronized而言,ReentrantLock会不容易产生死锁些。

    4、ReentrantLock支持更加灵活的同步代码块,但是使用synchronized时,只能
    在同一个synchronized块结构中获取和释放。注:ReentrantLock的锁释放一定要
    在finally中处理,否则可能会产生严重的后果。

    5、ReentrantLock支持中断处理,且性能较synchronized会好些。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java线程池的创建详解

下一篇:https遇到自签名证书/信任证书