Описание тега concurrentmodification
Параллельная модификация - обычная проблема с некоторыми приложениями, использующими потоки, когда неправильно используются блокировки / синхронизация. Это может вызвать ошибки или исключения, такие как ConcurrentModificationException в Java.
Одновременная модификация - это ошибка, которая может возникать в произвольный момент в многопоточном коде. Например, рассмотрим две функции для снятия и добавления со счета:
общедоступные переменные доллары
add(amount):
add amount to dollars
sets dollars amount
withdraw(amount):
subtract amount from dollars
sets dollars amount
Если бы в этом примере псевдокода было запущено два потока, можно было бы добавить один к числу (от 100 до 101 доллара), одновременно выдав 100 долларов клиенту и установив для учетной записи значение 0, а затем установите для учетной записи 101 доллар.
Разные языки обрабатывают это по-разному, например, Java имеет синхронизацию(объект с блокировкой), GTK имеет gtk_threads_enter/leave для взаимодействия в одном потоке.