Multithreading в Swift — приемы и примеры. Grand Central Dispatch (GCD)

Мультизадачность в iOS  реализована C-библиотекой Grand Central Dispatch (GCD). Это очень удобный инструмент, который за сценой самостоятельно реализует работу, и  разработчику не надо с этим заморачиваться. Разработчик не создает потоки, он оперирует с понятиями «Queue»  — очередь. Т.е. разработчик ставит в очередь (queue) функцию (обычно это замыкание), указывает приоритет для этой задачи, и GCD ее выполняет.

Main Queue

Это специальная очередь в GCD, в которой и только в которой нужно выполнять всю активность пользовательского интерфейса.  Main Queue — это serial queue, т.е. задачи в ней выполняются последовательно (одна за другой), и одна в единицу времени

Как получить Main Queue

Другие очереди

Другие очереди — это concurrent queue, т.е. задачи выполняются параллельно. Эти очереди гарантирует только то, что задачи в них будут запущены по очереди добавления их очередь (queue). А вот время выполнения задачи будет зависеть только от самой задачи. Они запрашиваются у системы при помощи констант quality of service

Итак общий процесс работы выглядит следующим образом:

Создать свою serial queue:

Другие примеры использования читайте в следующей статье

Опубликовано в Iron ribbon, Мультизадачность, Фундаментальные основы Метки: ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*