Встречается на собеседованиях • сегодня

Что такое синхронизация потоков

Синхронизация потоков — это механизм контроля доступа нескольких потоков к общим ресурсам, предотвращающий race condition (состояние гонки). В Java для этого используются ключевое слово synchronized, блокировки (Lock), атомарные классы (AtomicInteger и др.) и другие средства.

Пример с synchronized:

java
public class Counter {
    private int count = 0;
    
    public synchronized void increment() {
        count++;
    }
    
    public int getCount() {
        return count;
    }
}

Здесь метод increment() синхронизирован, поэтому только один поток может выполнить его в один момент времени.

Альтернатива с ReentrantLock:

java
private Lock lock = new ReentrantLock();

public void increment() {
    lock.lock();
    try {
        count++;
    } finally {
        lock.unlock();
    }
}

Синхронизация гарантирует целостность данных, но может снижать производительность из-за блокировок.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы