Если вы уже давно занимаетесь разработкой для платформ Apple, ваше понимание «параллелизма» может уходить корнями к эпохе Grand Central Dispatch. А если вы в разработке для яблочных девайсов ещё дольше, то как заметил Макс Зелеманн, то даже и к pthreads.
В этой небольшой, но интересной статье рассматриваются моменты, которые могут быть не совсем очевидны при работе с тасками.
📖 Вот выводы, к которым в итоге пришёл автор статьи (но рекомендую посмотреть и сам пост):
➡️ В своей простейшей форме они представляют собой замыкания для длительных операций в фоне.
➡️ Они предоставляют асинхронный контекст, позволяя вызывать асинхронный код.
➡️ Если хранить дескриптор, можно ждать завершения в другом месте или отменить задачу вовсе, когда она больше не нужна.
➡️ Если вы передаете дескриптор задачи, он служит в качестве промиса (будущего) для значения результата.
➡️ Поскольку задачи являются потокобезопасными, они также служат в качестве механизмов синхронизации вокруг их комплишна и результата.
😃 iOS Dev
