Sobes.tech
Back to questions
Junior — Middle
54

Можешь рассказать о примитивах в 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 не используется, но концепции похожи на работу с очередями и потоками.