???????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)
??????

???·???
App??С????H5?????????????????Щ??
2024/9/11 15:34:34?????????????????????????
2024/9/10 11:13:49P-One ???????????????????????????????????????
2024/9/10 10:14:12???????????????????????????
2024/9/9 18:04:26??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44