В каких случаях использовать @Synchronized

«В каких случаях использовать @Synchronized» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

@Synchronized используется, когда нужно обеспечить потокобезопасность метода в Kotlin. Это аннотация-аналог synchronized блока в Java, но для функций.

Когда применять:

  • Для простых случаев синхронизации (например, доступ к shared-ресурсу)
  • Когда нужно защитить отдельный метод от конкурентного доступа

Пример:

@Synchronized
fun updateCounter() {
    counter++
}

Ограничения:

  • Не подходит для сложных сценариев (лучше использовать Mutex или другие механизмы)
  • Синхронизирует весь метод, что может снижать производительность