Back to questions
Junior — Middle
64
В каких ситуациях необходимо применять синхронизированные участки кода?
Answer from AI
sobes.tech AI
Синхронизированные участки кода в Java применяются для обеспечения потокобезопасности при доступе к общим ресурсам из нескольких потоков.
Необходимость возникает, когда:
- Несколько потоков могут одновременно изменять общие данные (например, коллекции, переменные).
- Нужно избежать состояния гонки (race condition).
- Требуется гарантировать атомарность операций.
Пример: если несколько потоков добавляют элементы в общий список, без синхронизации возможна потеря данных или повреждение структуры.
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Здесь ключевое слово synchronized гарантирует, что только один поток одновременно выполнит метод, предотвращая некорректные изменения.