Swift async/await. Чем он лучше GCD?
Прошло уже больше года с момента выпуска async/await. Многие крупные и не очень проекты уже успели поднять минимальную версию до iOS 13, следовательно открылась возможность полноценно использовать новые языковые возможности по работе с многопоточным кодом. Но перед тем как начать полноценно рефакторить старый код и/или писать новый код используя относительно новую технологию в голове невольно всплывает вопрос: «А зачем? Чем это лучше того же GCD?». В этой вступительной статье из серии по async/await постараемся вместе ответить на этот вопрос.
Оглавление
Что такое swift async/await
Кто такая эта ваша многопоточность
Инструменты для работы с многопоточностью до async/await
Проблемы при работе с многопоточностью до async/await
Итоги
Что такое swift async/await
Swift async/await — это новая фича языка, добавленная в swift 5.5. Она позволяет работать с многопоточным кодом в синхронном стиле. Чем это лучше предыдущих инструментов по работе с многопоточным кодом — разберемся в этой части.
Кто такая эта ваша многопоточность
Перед тем как погрузится в проблемы при работе с многопоточным кодом очень кратко напомню что вообще такое многопоточность.
В большинстве случаев мы пишем синхронный код. Statements которые следуют друг за другом и выполняются так же как мы их и написали в коде, последовательно друг за другом.
Например код:
func printCucumbers() {
for _ in 0..<100 {
print("