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) гарантирует, что инкремент счетчика происходит атомарно, предотвращая возможные ошибки при одновременном доступе из разных потоков.