Можешь рассказать о примитивах в GCD (Grand Central Dispatch)?
Answer from AI
sobes.tech AI
Grand Central Dispatch (GCD) — это технология Apple для управления многопоточностью и асинхронным выполнением задач.
Основные примитивы GCD:
-
Dispatch Queues (очереди) — структуры, в которые помещаются задачи для последовательного или параллельного выполнения.
- Serial queue — задачи выполняются по одной, последовательно.
- Concurrent queue — задачи могут выполняться одновременно.
-
Dispatch Groups — позволяют группировать несколько задач и получать уведомление, когда все они завершены.
-
Dispatch Semaphores — примитив для управления доступом к ресурсам, похож на классический семафор.
-
Dispatch Sources — механизм для отслеживания системных событий (например, таймеры, события файловой системы).
-
Dispatch Work Items — обертка для задач, позволяющая отменять или изменять приоритет.
Пример использования serial queue на Swift:
let serialQueue = DispatchQueue(label: "com.example.serial")
serialQueue.async {
print("Задача 1")
}
serialQueue.async {
print("Задача 2")
}
// Задачи выполнятся последовательно
В Python напрямую GCD не используется, но концепции похожи на работу с очередями и потоками.