jvm Java中的忙碌旋转:防止制造商/JIT优化

bkhjykvo  于 2023-10-18  发布在  Java
关注(0)|答案(1)|浏览(118)

我试图在Java程序中执行忙碌旋转,并希望防止编译器或JIT优化代码。代码是一个简单的循环:

for (int i = 0; i < spins; i++) {
}

其中spins是输入。
我怎样才能防止这段代码被优化掉呢?

rsaldnfx

rsaldnfx1#

Thread.onSpinWait()就是为了这个目的而设计的。文档甚至显示了一个示例:

volatile boolean eventNotificationNotReceived;

void waitForEventAndHandleIt() {
    while (eventNotificationNotReceived) {
        Thread.onSpinWait();
    }
    readAndProcessEvent();
}

相关问题