在 Java 中,可以使用 synchronized 关键字或者 ReentrantLock 类来实现乐观锁。下面分别给出两种实现方式的示例代码:
- 使用 synchronized 关键字实现乐观锁:
public class OptimisticLockExample { private int count = 0; public synchronized void increment() { int oldValue = https://www.yisu.com/ask/count;> { example.increment(); }); Thread t2 = new Thread(() -> { example.increment(); }); t1.start(); t2.start(); try { t1.join(); t2.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Final count: " + example.count); } }
- 使用 ReentrantLock 类实现乐观锁:
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class OptimisticLockExample { private int count = 0; private Lock lock = new ReentrantLock(); public void increment() { lock.lock(); try { int oldValue = https://www.yisu.com/ask/count;> { example.increment(); }); Thread t2 = new Thread(() -> { example.increment(); }); t1.start(); t2.start(); try { t1.join(); t2.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Final count: " + example.count); } }
以上是两种在 Java 中实现乐观锁的方式,分别使用 synchronized 关键字和 ReentrantLock 类。在实际开发中,可以根据具体场景选择合适的方式来实现乐观锁。