Мне немного неловко задавать этот вопрос, но результат следующего фрагмента кода поставил меня в тупик:
System.out.println("incrementResultResponses() has been invoked!");
final long oldValue = resultResponses;
final long newValue = resultResponses++;
System.out.println("Old value = " + oldValue);
System.out.println("New value = " + newValue);
Выводит следующее:
incrementResultResponses() has been invoked!
Old value = 0
New value = 0
Почему? Может ли параллелизм как-то повлиять на результат? Кстати, resultResponses
- это long
.