java-公平锁与非公平锁synchorizned与ReentrantLock

1、ReentrantLock构造函数提供了2种公平性的选择:

1)创建公平锁。如果锁已经被其他线程战友有,新的请求线程会加入到等待队列,或者已经有一些线程在等待锁了。

2)创建非公平锁,线程按顺序请求获得公平锁,而一个非公平锁可以闯入,如果锁的状态可用,请求非公平锁的线程可在等待队列中向前跳跃,获得该锁。内部锁synchronized没有提供确定的公平性保证

2、在synchronized和ReenrantLock之间进行选择

在synchronized内部锁不能满足使用时,ReentrantLock才能做为更高级的工具。当你需要以下特性时,才应使用:

1)可定时的、可轮询的与可中断的锁获取操作

2)公平队列或非块结构的锁

JAVA5。0中内部锁比ReentrantLock相比,有另一个优点:线程转储能显示哪些个调用框架获得了哪些锁,并能识别发生了死锁的那些线程。JAVA6解决了这个问题

 

http://deepfuture.iteye.com/category/93633?page=4&show_full=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值