Android-разработка[7]. Многопоточность. Корутины.
Вставка
- Опубліковано 25 лип 2024
- Лекция о многопоточном программировании под Android.
Разберем сферу применения, плюсы и минусы многопоточного подхода в разработке мобильного приложения.
Рассмотрим способы реализации многопоточности в Android из прошлого и подробный разбор современных Kotlin Coroutines.
Лектор: Георгий Сагарадзе
by Doubletapp (doubletapp.ai)
Android-чат для вопросов в телеграме t.me/doubledroid
Наш production-канал:
/ @old_doubletapp
⬇⬇⬇
Сайт: doubletapp.ai
VK: doubletapp
Telegram: t.me/doubletapp
Instagram: / doubletapp.ai
Facebook: / doubletapp.ai
Dribble: dribbble.com/Doubletapp
00:00 Android-разработка[7]. Многопоточность. Корутины.
00:40 Причины применения многопоточности
02:24 Трудности многопоточного программирования
02:40 Какие операции выносить в параллельный поток
05:25 Способы создания многопоточности в Android
06:13 Thread
11:43 AsyncTask
13:24 Остальные способы создания параллельных потоков кратко
13:58 Coroutine начало
21:11 Coroutine job
22:38 Coroutine dispatcher
26:25 Coroutine scope
29:28 Suspend функции
30:38 Coroutine async
33:21 Домашнее задание
#Coroutines #Kotlin #AndroidDev
Таймкоды:
0:54 - Причины применения многопоточности
2:40 - Какие операции выносить в параллельный поток
2:24 - Трудности многопоточного программирования
5:25 - Способы создания многопоточности в Android
6:13 - Thread
11:43 - AsyncTask
13:24 - Остальные способы создания параллельных потоков кратко
13:58 - Coroutine начало
21:11 - Coroutine job
22:38 - Coroutine dispatcher
26:25 - Coroutine scope
29:28 - Suspend функции
30:38 - Coroutine async
33:21 - Домашнее задание
Спасибо Вам за такой чудесный урок!
такой формат вообще годнота, намного лучше чем в аудитории
Согласен. В 100 раз лучше.
Наконец-то кто-то коротко, емко и максимально понятно обьяснил все что касается многопоточности от Thread до корутин. Теперь все стало на свои места. Автору огромное спасибо!!!!!🤌🤌🤌🤌🤌🤝🤝🤝🤝
очень круто! все достаточно подробно и по полочкам) продолжайте выпускать видео! большое спасибо!
Спасибо за видео! Очень подробно и понятно объяснил
Отличное видео, спасибо!
Потрясающая лекция. Наконец всё понятно!!!
легко просматривается, круто )
Спасибо за труд!
Очень доступно👍🏼
Супер!
Очень всё понятно объясняется. Спасибо!
Один из самых информативных докладов!
Классно объяснил!
Спасибо!
охуедь вы чёткие ребята. спасибо большое.
Очень крутая лекция, спасибо.
Интересно, насколько нормально использовать async/await в циклах, например для кучи вложенных запросов в сеть?
Очень понятно объяснил. Корутины перестали быть такими страшными - спасибо большое) Особенное спасибо за сравнение с Thread'ами и объяснение разницы - очень все доступно. Теперь с таким бэкграундом легче их изучать и вникать глубже.
Ну да, просто добавилась некоторая "магия", которая магическим образом всё пояснила.
27.57 «наследуем модель от скоупа»
Наверняка вы хотели сказать «реализует интерфейс корутинСкоуп»
Ребят, у меня вопрос возник. Вы пишете: GlobalScope.launch{
showProgress()
val result = getResultFromServer(data)
}
В каком потоке это работает? Если это Main, то по идее будет freez, если Default, то как тогда можно работать с progress, ведь, по идее, нельзя менять ui не в Main?
Это мейн поток поэтому юи будет менятся, но для getResultFromServer мы указываем другой поток с помощью withContext поэтому не будет никаких фризов
Сама концепция корутин достаточно исковеркана. Попутаны понятия асинхронного кода и многопоточного. Много чего просто объясняется магией. Уже либо объяснять всё как подобает, либо просто сказать: пиши вот так и получишь такой результат.
Формат крутой , разбор материала супер. Но пожалуйста попейте воды перед выступлением причмокивание просто невероятно раздражают
очень затянуто
Спасибо за работу, очень понятно обьясняет Георгий. Но есть один нюанс, GlobalScope не рекомендуется использовать, в данной документации можно ознакомиться с лучшей практикой от google по корутинам: developer.android.com/kotlin/coroutines?gclsrc=aw.ds&gclid=Cj0KCQiAzfuNBhCGARIsAD1nu-8FwVhMV6fGLeq2T0-oLRXJgSaZ7nxbr1Qdf-umOLxhEzyKW2PqOsUaAjyIEALw_wcB