Слава - Стань сильней
Swift. Немного о понимании многопоточности при работе с GCD.
Одним из основных инструментов для работы с многопоточностью является GCD. Вроде всё понятно: при работе с GCD мы работаем с потоками не напрямую, а через очереди (queue), добавляя в них задачи (замыкания), которые выдергивается системой по принципу FIFO. Очередь может последовательная (.serial) или параллельная (.concurrent). И напоследок, задачи можно добавлять в очередь синхронно (.sync) или (.async), тут, как мне кажется, и возникают проблемы и вопросы. Блокирует ли параллельную очередь синхронное добавление задачи? Для того, чтобы получить ответ рассмотрим два примера...