Назад к вопросам
Junior — Middle
68
Имел ли опыт использования механизма Semaphore в своих проектах?
Ответ от нейросети
sobes.tech AI
Да, в проектах на Android использовал механизм Semaphore для управления доступом к ограниченным ресурсам в многопоточном окружении.
Semaphore позволяет ограничить количество потоков, которые могут одновременно выполнять определённый участок кода или использовать ресурс. Например, если у вас есть пул соединений к базе данных, и вы хотите ограничить число одновременных подключений, Semaphore поможет это контролировать.
Пример использования в Kotlin:
val semaphore = Semaphore(3) // максимум 3 потока одновременно
fun accessResource() {
semaphore.acquire() // пытаемся получить разрешение
try {
// работа с ресурсом
} finally {
semaphore.release() // освобождаем разрешение
}
}
Это помогает избежать гонок данных и перегрузки ресурсов.