Sobes.tech
Back to questions
Junior — Middle
62

В каких случаях в своем коде вы применяли блоки synchronized для управления потоками?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Блоки synchronized в Java я применял для управления доступом к общим ресурсам в многопоточных приложениях, чтобы избежать состояния гонки и обеспечить корректность данных. Например, когда несколько потоков одновременно изменяют общий счетчик или коллекцию, я оборачиваю критическую секцию в synchronized блок, чтобы только один поток мог выполнять этот код в конкретный момент времени.

Пример:

public class Counter {
    private int count = 0;

    public void increment() {
        synchronized(this) {
            count++;
        }
    }

    public int getCount() {
        return count;
    }
}

Здесь synchronized(this) гарантирует, что инкремент счетчика происходит атомарно, предотвращая возможные ошибки при одновременном доступе из разных потоков.