java有哪几种锁实现用代码示例写出来
在Java中,有以下几种锁的实现:
- synchronized关键字:
public class SynchronizedExample {
private int counter = 0;
public synchronized void increment() {
counter++;
}
}
- ReentrantLock类:
import java.util.concurrent.locks.ReentrantLock;
public class ReentrantLockExample {
private int counter = 0;
private ReentrantLock lock = new ReentrantLock();
public void increment() {
lock.lock();
try {
counter++;
} finally {
lock.unlock();
}
}
}
- ReadWriteLock接口的实现类ReentrantReadWriteLock:
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
public class ReadWriteLockExample {
private int counter = 0;
private ReadWriteLock lock = new ReentrantReadWriteLock();
public void increment() {
lock.writeLock().lock();
try {
counter++;
} finally {
lock.writeLock().unlock();
}
}
}
- StampedLock类:
import java.util.concurrent.locks.StampedLock;
public class StampedLockExample {
private int counter = 0;
private StampedLock lock = new StampedLock();
public void increment() {
long stamp = lock.writeLock();
try {
counter++;
} finally {
lock.unlockWrite(stamp);
}
}
}
``
原文地址: https://www.cveoy.top/t/topic/ijac 著作权归作者所有。请勿转载和采集!