Встречается на собеседованиях • сегодня
Как обеспечить потокобезопасность переменной без использования атомарных классов
Используйте ключевое слово 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;
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы