Пустые циклы с побочными эффектами в своем состоянии попадают в ловушку удаления мертвого кода? - PullRequest
0 голосов
/ 13 сентября 2018

С учетом следующего кода

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

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

Удастся ли в конечном итоге jvm устранить цикл while, потому что у него нет тела, или он распознает побочный эффект условия и сохранит цикл на месте?

1 Ответ

0 голосов
/ 13 сентября 2018

Нет, jvm не будет "оптимизировать" вызов вашего метода. Ваше состояние будет повторяться до тех пор, пока оно не вернет false, и побочные эффекты будут происходить как обычно.

...