TGViewer
Dolgo.polo Dev | Денис Долгополов Dolgo.polo Dev | Денис Долгополов @dolgo_polo_dev · 2.18K subscribers
Post #130 3.1K
Coroutine и Async/Await


Общее

• позволяют писать асинхронный код последовательно
• позволяют асинхронным функциям возвращать результат синхронно, без явных callback-ов (Android) / completion-ов (iOS)
• раньше многопоточный код писался с помощью очередей/реактивных потоков


Coroutine

• асинхронные функции помечаются ключевым словом suspend

• CoroutineScope — "область", для которой задаются параметры и внутри которой выполняются suspend-функции

• пул-потоков задается через Dispatcher

• можно отменить выполнение отдельной suspend`-функции или всего `CoroutineScope — cancel()

• есть два основных билдера — launch (запускает корутину) и async/await (создает корутину и возвращает результат)


CoroutineScope(Dispatcher.Main).launch {
val result = doSomething()
}

suspend fun doSomething(): String {
...
}




Async/await

• асинхронная функция помечается ключевым словом async, место вызова функции помечает как await

• Task — это контекст, позволяющий запустить асинхронный код, относительно точки вызова. Может быть вызван, как из синхронной, так и асинхронной функции

• пул потоков задается через Actor

• можно отменить выполнение async-фукнции или всего Task — cancel()

• async-функции можно вызывать внутри Task и других async-функций


Task(priority: .medium) {
let result = await doSomething()
}


func doSomething() async throws -> [String] {
...
}



#cross_post
@dolgo_polo_dev

за помощью в подготовке материала спасибо:
• iOS
@alextar04
• Android
@dmitry_tsyvtsyn (aka @android_under_the_hood)
  • 🏆 13
  • 👍 12
  • 🍓 2
  • 🔥 1
More from @dolgo_polo_dev
  1. Jun 22, 2026Медиалента — то, что пользователь реально ощущает физически: скроллы, зумы, тапы. Любые ми…
  2. Jun 20, 2026👮‍♀️ Как VPN видит трафик всех приложений? технически VPN на андроид — это сервис внутри…
  3. Jun 13, 2026Дуров опять не старается 🍌🍌🍌 Пару месяцев назад команду телеграма ругали за то, что они…
  4. May 24, 2026🧬Может ли VPN ускорить интернет? Интуиция подсказывает — точно нет Добавляется лишний сер…
  5. May 22, 2026кто же знал, что основным выгодополучателем max 📲 окажется habr.com любая статья набирает…
  6. May 6, 2026вы снова не туда воюете сначала все пушили Compose типо верстать в 2 раза быстрее, можно с…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →