Sobes.tech
Назад к вопросам
Junior — Middle
65

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

Компании, где спрашивали
DCloud

Ответ от нейросети

sobes.tech AI

Потокобезопасность статических методов в Java не гарантируется автоматически, так как статический метод — это просто метод, связанный с классом, а не с экземпляром. Если статический метод изменяет общие (статические) данные, необходимо самостоятельно обеспечить синхронизацию.

Для этого можно использовать:

  • Ключевое слово synchronized для метода или блока кода внутри метода, чтобы обеспечить эксклюзивный доступ.
  • Использование потокобезопасных структур данных (например, ConcurrentHashMap).
  • Иммутабельные объекты, чтобы избежать состояния, изменяемого несколькими потоками.

Пример синхронизации статического метода:

public class Counter {
    private static int count = 0;

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

    public static int getCount() {
        return count;
    }
}

Здесь increment потокобезопасен, так как метод синхронизирован.