Junior — Middle
97
Ресурстарды бәсекелестікті басқару үшін жобаларыңызда семафор механизмін қолдандыңыз ба?
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
Да, механизм семафора часто применяется для управления доступом к ограниченным ресурсам в многопоточных приложениях. В iOS, например, можно использовать DispatchSemaphore для ограничения количества одновременно выполняющихся задач.
Пример использования DispatchSemaphore:
let semaphore = DispatchSemaphore(value: 2) // разрешаем одновременно 2 задачи
DispatchQueue.global().async {
semaphore.wait() // уменьшаем счетчик, если 0 — ждем
// критическая секция
print("Task started")
sleep(2) // имитация работы
print("Task finished")
semaphore.signal() // увеличиваем счетчик
}
Такой подход помогает избежать гонок данных и контролировать конкуренцию при работе с ограниченными ресурсами, например, при доступе к базе данных или сетевым запросам.