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

Как обеспечить потокобезопасность переменной без использования атомарных классов

Используйте ключевое слово synchronized для методов или блоков кода, которые изменяют переменную. Это гарантирует, что только один поток сможет получить доступ к критической секции за раз.

Пример с методом:

java
private int counter = 0;

public synchronized void increment() {
counter++;
}

text

Пример с блоком:
```java
private final Object lock = new Object();
private int counter = 0;

public void increment() {
    synchronized(lock) {
        counter++;
    }
}

Также можно использовать volatile для примитивов, если операции атомарны (например, простое присваивание). Это обеспечивает видимость изменений между потоками:

java
private volatile boolean flag = false;
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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