Swift async/await. Чем он лучше GCD?

0db4855846583d3908837be376a6fdac.png

Прошло уже больше года с момента выпуска 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("
    
            

© Habrahabr.ru