Java 中可以使用 java.util.concurrent.atomic 包中的 AtomicInteger 类来实现自旋锁。例如:

AtomicIntegerlock = new AtomicInteger(1);

void acquireLock() {
    while (!lock.compareAndSet(1, 0)) {
        // busy wait
    }
}

void releaseLock() {
    lock.set(1);
}

这里的自旋锁使用了 Java 的原子变量来实现,通过调用 compareAndSet 方法来获取锁,当锁可用时,该方法会将锁的值从 1 更改为 0,并返回 true,否则返回 false。在释放锁时,只需要将锁的值设置为 1 即可。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐