???????Java??????????
???????????? ???????[ 2013/3/20 10:13:40 ] ????????
?????????????????
?????????????ReentrantLock?????????????????????????????????
??????????????????
class ReentrantLockExample {
int a = 0;
ReentrantLock lock = new ReentrantLock();
public void writer() {
lock.lock(); //?????
try {
a++;
} finally {
lock.unlock(); //?????
}
}
public void reader () {
lock.lock(); //?????
try {
int i = a;
……
} finally {
lock.unlock(); //?????
}
}
}
??????ReentrantLock?У?????lock()???????????????unlock()???????????
????ReentrantLock???????????java????????AbstractQueuedSynchronizer??????????AQS????AQS???????????volatile???????????state??????????????????????????????volatile??????ReentrantLock?????????????????????ReentrantLock???????????????????????????
????ReentrantLock???????????????????????????????????
??????ù???????????????lock()????????ù????£?
????1??ReentrantLock:lock()
????2??FairSync:lock()
????3??AbstractQueuedSynchronizer:acquire(int arg)
????4??ReentrantLock:tryAcquire(int acquires)
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11