Фрагмент кода, как показано ниже:почему синхронизируется объект все еще можно манипулировать
List<String> list = new ArrayList<>();
public void addValue(int i) {
synchronized (list) {
list.add("list" + i);
}
}
Мой вопрос заключается в том, что то, что заблокирован по ключевому слову synchronized
.
Что будет проверено на list
, когда два потока попросят выполнить блок кода?
Тот же вопрос, что я синхронизировал this
, но его поля все еще можно изменить.