死代码消除是否捕获了在这种情况下具有副作用的空循环?

时间:2018-09-12 22:13:46

标签: java jvm jit jvm-hotspot dead-code

给出以下代码

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

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

jvm是否会因为没有主体而最终消除while循环,还是会识别条件的副作用并将循环保持在适当位置?

1 个答案:

答案 0 :(得分:0)

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