Рассмотрим 2 потока и массив int[] values
. Первый поток выполняет:
synchronized (values) {
values[i] = 58;
}
, в то время как второй поток выполняет:
if (values[i] == 58) {
}
вне блока synchronized
.
Если первый поток сначала выполняет values[i]= 58
, гарантируется ли, что, если второй поток выполняется немного позже, if
второго потока читает 58
, даже если второй поток читает values[i]
вне блока synchronized
?