菜鸟的一个学习笔记,欢迎大神 批评指正。
Java多线程相关知识【39】–并发包用法–ReentrantLock
1.简介
在锁的基础上,提供了一些管理者的操作。
2.相关用法
构造函数
ReentrantLock();//声明一个锁
ReentrantLock(boolean fair);//声明一个锁,并保证其公平性
相关方法
返回类型 | 方法 | 说明 |
---|---|---|
int | getHoldCount() | 在使用锁的线程内获取正在等待的线程个数 |
protected Thread | getOwner() | 返回正在使用本锁的线程 |
protected Collection | getQueuedThreads() | 返回正在等待本锁的线程 |
int | getQueueLength() | 返回正在等锁的线程的个数 |
protected Collection | getWaitingThreads(Condition condition) | 查看在一定条件下获取给定集合使用本锁的等待的线程 |
int | getWaitQueueLength(Condition condition) | 查看在一定条件下获取给定集合使用本锁的等待的线程的个数 |
boolean | hasQueuedThread(Thread thread) | 查看等待的队列中是否存在线程 |
boolean | hasQueuedThreads() | 询问锁队列中是否有本线程 |
boolean | hasWaiters(Condition condition) | 查看在一定条件下是否存在等待的线程 |
boolean | isFair() | 是否做到尽量的公平 |
boolean | isHeldByCurrentThread() | 当前线程是否为获得锁的对象 |
boolean | isLocked() | 这个锁是否在使用 |
void | lock() | 进行锁的申请 |
void | lockInterruptibly() | 可被中断的锁 |
Condition | newCondition() | 返回当前使用本锁的线程的状况 |
String | toString() | 返回锁状态信息的描述 |
boolean | tryLock() | 尝试进行锁的申请 |
boolean | tryLock(long timeout, TimeUnit unit) | 尝试进行锁的申请,并等待一定时间 |
void | unlock() | 解锁 |