具有副作用的空循环是否因为死代码消除而被捕获?

问题描述 投票:0回答:1

给出以下代码

var cachedInt = new ArrayBlockingQueue<Integer>(xxxxx);

while(true){
   while(cachedInt.offer(randomProvider.nextInt()));
   latch.await();
}

jvm最终是否会消除while循环,因为它没有正文或是否识别出条件的副作用并保持循环到位?

java jvm jit jvm-hotspot dead-code
1个回答
0
投票

没有jvm不会“优化”你的方法调用。您的情况将反复运行,直到它返回false并且副作用将正常发生。

© www.soinside.com 2019 - 2024. All rights reserved.