线程(七)--线程同步-同步锁(Lock)

Lock比synchronized灵活,可以显式的释放锁
 
 
Lock接口已实现的 子类有:
ReentrantLock 可重入锁 
ReentrantReadWriteLock.ReadLock 读锁
ReentrantReadWriteLock.WriteLock 写锁
 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能有一个人在写,且不能同时读取,那就上写锁。总之,读的时候上读锁,写的时候上写锁!
ReadWriteLock 接口已实现的子类
ReentrantReadWriteLock  可重入读写锁
ReentrantReadWriteLock会使用两把锁来解决问题,一个读锁,一个写锁


这个类中嵌套了Lock的两个子类
ReentrantReadWriteLock.ReadLock 读锁
ReentrantReadWriteLock.WriteLock 写锁
锁的基本使用结构
  
  
    
    
public void put(Object x) throws InterruptedException {
lock.lock();
try {
while (count == items.length)
items[putptr] = x;
if (++putptr == items.length) putptr = 0;
++count;
} finally {
lock.unlock();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值