Содержание курса
1. Введение
4 урока
339
329
11м
12
Закрытый
1.1
От автора
↗
91
91
1м 4с
7
Закрытый
1.2
Исторический экскурс
↗
85
85
2м 56с
-1
Закрытый
1.3
Ключевые термины
↗
82
76
4м 26с
3
Закрытый
1.4
Корутины vs. потоки
↗
81
77
4м 41с
3
2. Быстрый старт
4 урока
661
23
67м
8
Открытый
2.1
Первая корутина
↗
323
5
0м 17с
2
Закрытый
2.2
Вторая корутина
↗
80
6
38м 37с
2
Закрытый
2.3
suspend
↗
78
6
26м 42с
2
Открытый
2.4
Точки приостановки. delay и yield
↗
180
6
4м 35с
2
3. Билдеры корутин
3 урока
226
12
13м
5
Закрытый
3.1
runBlocking
↗
77
4
3м 51с
2
Закрытый
3.2
launch и async
↗
76
4
6м 23с
1
Закрытый
3.3
Применение функции select в связке с async
↗
73
4
4м 6с
2
4. Структурированная конкурентность
4 урока
269
16
391м
8
Закрытый
4.1
Иерархия корутин. Скоупы
↗
75
4
55м 10с
1
Закрытый
4.2
CoroutineScope()
↗
66
4
164м 32с
3
Закрытый
4.3
coroutineScope
↗
64
4
8м 30с
2
Закрытый
4.4
GlobalScope
↗
64
4
165м 15с
2
5. Контекст корутины
4 урока
239
16
137м
7
Закрытый
5.1
Структура контекста
↗
63
4
119м 53с
1
Закрытый
5.2
Сложение и вычитание контекстов
↗
62
4
5м 41с
2
Закрытый
5.3
Формула композиции контекстов
↗
59
4
5м 0с
2
Закрытый
5.4
Примеры создания контекста
↗
55
4
9м 36с
2
6. Диспетчеры
5 уроков
259
71
37м
5
Закрытый
6.1
Понятие диспетчера
↗
56
56
1м 54с
2
Закрытый
6.2
Dispatchers.Default
↗
53
4
7м 56с
3
Закрытый
6.3
Dispatchers.IO
↗
51
4
24м 51с
-1
Закрытый
6.4
Dispatchers.Main
↗
49
4
4м 44с
1
Закрытый
6.5
Dispatchers.Unconfined
↗
50
3
2м 46с
0
7. Job
5 уроков
225
7
216м
8
Закрытый
7.1
Определение и жизненный цикл
↗
49
2
148м 34с
1
Закрытый
7.2
Создание Job
↗
44
2
33м 53с
2
Закрытый
7.3
Отмена Job
↗
45
1
8м 41с
1
Закрытый
7.4
Ожидание потомков
↗
44
1
25м 33с
2
Закрытый
7.5
Распространение отмены по иерархии
↗
43
1
3м 25с
2
8. Обработка исключений
4 урока
176
121
17м
3
Закрытый
8.1
Исключения в билдерах и корутин-скоуп функциях
↗
46
1
4м 42с
1
Закрытый
8.2
Распространение исключений по иерархии
↗
45
38
4м 33с
2
Закрытый
8.3
SupervisorJob и supervisorScope
↗
42
39
9м 50с
0
Закрытый
8.4
Обработчик CoroutineExceptionHandler
↗
43
43
1м 37с
0
9. Тестирование корутин
5 уроков
190
184
10м
1
Закрытый
9.1
Библиотека kotlinx-coroutines-test и функция runTest
↗
43
43
1м 29с
0
Закрытый
9.2
Виртуальное время
↗
40
34
4м 45с
1
Закрытый
9.3
Собственный планировщик
↗
37
37
1м 13с
0
Закрытый
9.4
Тестовые диспетчеры
↗
36
36
1м 25с
0
Закрытый
9.5
Тестирование исключений
↗
34
34
2м 38с
0
10. Каналы
5 уроков
172
168
12м
1
Закрытый
10.1
Паттерн producer-consumer. Функции send() и receive()
↗
41
41
3м 37с
1
Закрытый
10.2
Создание канала
↗
35
35
2м 13с
0
Закрытый
10.3
Параметры канала
↗
34
30
4м 13с
0
Закрытый
10.4
Несколько отправителей и получателей
↗
31
31
2м 33с
0
Закрытый
10.5
Select для работы с каналами
↗
31
31
1м 21с
0
11. Kotlin Flow
7 уроков
246
228
23м
4
Закрытый
11.1
Ленивые вычисления
↗
38
38
1м 56с
2
Закрытый
11.2
Понятие Flow. Создание Flow
↗
40
30
7м 9с
0
Закрытый
11.3
Структура Flow. Операторы
↗
31
31
3м 47с
1
Закрытый
11.4
Управление скоростью потока
↗
34
31
4м 28с
-1
Закрытый
11.5
Контекст выполнения
↗
35
30
4м 30с
1
Закрытый
11.6
Обработка исключений в Flow
↗
33
33
3м 41с
1
Закрытый
11.7
Отмена потоков
↗
35
35
1м 10с
0
12. Горячие потоки данных в Kotlin Flow
3 урока
101
92
14м
0
Закрытый
12.1
SharedFlow
↗
35
35
2м 0с
0
Закрытый
12.2
MutableSharedFlow
↗
35
26
10м 49с
0
Закрытый
12.3
StateFlow и MutableStateFlow
↗
31
31
2м 2с
0
13. Послесловие
1 урок
39
39
1м
1
Закрытый
13.1
Материалы для дальнейшего изучения
↗
39
39
1м 54с
1