public synchronized void synchronizedMethod() { } private final Lock lock = new ReentrantLock(); public void lockedMethod() { lock.lock(); try { } finally { lock.unlock(); } } private final ReadWriteLock lock = new ReentrantReadWriteLock(); public void readMethod() { lock.readLock().lock(); try { } finally { lock.readLock().unlock(); } } public void writeMethod() { lock.writeLock().lock(); try { } finally { lock.writeLock().unlock(); } } private final StampedLock lock = new StampedLock(); public void optimisticReadMethod() { long stamp = lock.tryOptimisticRead(); if (!lock.validate(stamp)) { stamp = lock.readLock(); try { } finally { lock.unlockRead(stamp); } } } public void writeMethod() { long stamp = lock.writeLock(); try { } finally { lock.unlockWrite(stamp); } }


上一篇:
下一篇:
切换中文