ReentrantLock

1.定义

在这里插入图片描述

**公平锁:**线程按照进入等待队列的顺序来获得锁,可以用于解决饥饿问题;
**多个条件变量是:**将对象锁粒度细化,即有多个不相干的对象锁;
在这里插入图片描述

**2.可中断

:**是指线程在blocked阶段等待锁的时候,可以被其他线程打断,停止等待,可以用于解决死锁的问题(被动的方式);

线程t1的中断语句:

`t1.interrupt();`

3.锁超时

trylock();

1.带参数,等待一段时间;
2.不带参数,获取不到锁马上结束;

4. 公平锁

在这里插入图片描述
通过fair参数设置公平锁或不公平锁(默认是非公平锁);
一般不设置公平锁,会降低并发度;

5.条件变量

在这里插入图片描述
声明reentrantLock()

static ReentrantLock lock = new ReentrantLock();

创建条件变量

Condition condition1=lock. newCondition();

进入休息室等待(类似于wait()方法)

lock.lock();//先获得锁
condition1.await();

条件变量去唤醒线程(类似于notify()方法)

condition1.signal();
condition1.signalAll();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值