在Java中,有以下几种锁的实现:

  1. synchronized关键字:
public class SynchronizedExample {
    private int counter = 0;

    public synchronized void increment() {
        counter++;
    }
}
  1. 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();
        }
    }
}
  1. 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();
        }
    }
}
  1. 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);
        }
    }
}
``
java有哪几种锁实现用代码示例写出来

原文地址: https://www.cveoy.top/t/topic/ijac 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录