Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Kotlin: multithreading, synchronization, atomic

Какие примитивы синхронизации (synchronized, Atomic, семафоры) вы использовали?

Вопрос проверяет знание инструментов для синхронизации потоков в Kotlin/Android.

Короткий ответ

  • synchronized – для блокировки доступа к общему ресурсу.

  • Atomic-классы – для атомарных операций (например, AtomicInteger).

  • Семафоры (Semaphore) – для ограничения доступа к ресурсу с заданным числом потоков.

Длинный ответ

1. synchronized

Используется для блокировки доступа к общему ресурсу из нескольких потоков.

Пример:

private val lock = Object()

fun updateSharedResource() {
    synchronized(lock) {
        // Критическая секция
        counter++
    }
}

Когда использовать:

  • Для простых случаев блокировки (например, изменение общего поля).

2. Atomic-классы

Обеспечивают атомарные операции без блокировок.

Пример:

private val atomicCounter = AtomicInteger(0)

fun increment() {
    atomicCounter.incrementAndGet() // Безопасно для потоков
}

Когда использовать:

  • Для счётчиков, флагов и других простых операций.

3. Семафоры (Semaphore)

Ограничивают число потоков, которые могут одновременно получить доступ к ресурсу.

Пример:

private val semaphore = Semaphore(3) // Максимум 3 потока

fun accessResource() {
    semaphore.acquire()
    try {
        // Работа с ресурсом
    } finally {
        semaphore.release()
    }
}

Когда использовать:

  • Для ограничения параллельных запросов (например, к API).

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Kotlin

    Kotlin

Ключевые слова

#multithreading

#synchronization

#atomic

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.