Содержание пакета (2 курса)
1. Асинхронный Python 4.72972972972973
1. Начало
1 урок
👁
4 906
👤
1 134
Открытый
1.1
Введение
↗
4 906
1 134
4м
253
2. Основы асинхронного программирования
6 уроков
👁
25 547
👤
12 741
Открытый
2.1
Введение в асинхронность
↗
6 789
1 960
9м
224
Закрытый
2.2
Основные преимущества asyncio
↗
3 869
2 301
12м
160
Закрытый
2.3
IO bound и CPU bound
↗
4 342
2 773
12м
144
Закрытый
2.4
В каких задачах полезно асинхронное программирование
↗
3 555
1 867
10м
135
Закрытый
2.5
В каких задачах бесполезно асинхронное программирование
↗
3 446
1 787
9м
138
Закрытый
2.6
GIL
↗
3 546
2 053
19м
152
3. Awaitable объекты
7 уроков
👁
17 606
👤
10 363
Закрытый
3.1
Основные элементы asyncio
↗
1 867
1 867
1м
87
Закрытый
3.2
Coroutines / Корутины
↗
3 212
1 922
35м
138
Закрытый
3.3
Task / Задачи
↗
2 482
1 796
68м
155
Закрытый
3.4
Future / Футуры
↗
2 322
977
117м
94
Закрытый
3.5
Awaitable объекты
↗
2 390
1 305
43м
113
Открытый
3.6
Ключевое слово await
↗
2 930
986
30м
107
Закрытый
3.7
Цикл событий (event loop)
↗
2 403
1 510
25м
98
4. Основы работы с Asyncio
15 уроков
👁
23 112
👤
12 209
Закрытый
4.1
Основные методы asyncio
↗
2 018
1 386
17м
104
Закрытый
4.2
Запуск цикла событий
↗
1 936
1 254
33м
100
Закрытый
4.3
Асинхронный сон
↗
1 881
850
80м
90
Закрытый
4.4
Создание задач
↗
1 828
1 061
77м
93
Закрытый
4.5
Создание задач, часть 2
↗
1 699
689
89м
-23
Закрытый
4.6
Одновременное выполнение корутин
↗
1 980
780
97м
95
Закрытый
4.7
Предотвращаем "зависание" корутин
↗
1 676
799
95м
57
Закрытый
4.8
Ожидание группы корутин
↗
1 574
776
91м
98
Закрытый
4.9
Получение результатов от группы задач по мере завершения
↗
917
651
30м
65
Закрытый
4.10
Создаём новый цикл событий
↗
1 467
613
36м
84
Закрытый
4.11
Устанавливаем цикл событий по умолчанию
↗
1 416
798
18м
60
Закрытый
4.12
Получаем ссылку на текущий цикл событий
↗
1 405
884
17м
79
Закрытый
4.13
Получаем доступ к текущему циклу событий
↗
1 378
592
27м
76
Закрытый
4.14
Запуск блокирующих функций в отдельном потоке
↗
1 150
553
72м
102
Закрытый
4.15
Контекстные переменные
↗
787
523
56м
43
5. Работа с задачами / task
15 уроков
👁
18 183
👤
10 640
Закрытый
5.1
Введение в задачи / task
↗
1 456
823
16м
69
Закрытый
5.2
Основные методы управления задачами / task
↗
1 430
1 193
6м
63
Закрытый
5.3
Проверка статуса задачи
↗
1 308
656
64м
66
Закрытый
5.4
Получение результата выполнения задачи
↗
1 285
544
40м
75
Закрытый
5.5
Работа с текущей задачей
↗
1 246
517
44м
72
Закрытый
5.6
Получение всех задач в цикле событий
↗
1 233
604
18м
66
Закрытый
5.7
Установка и получение имени задачи
↗
1 216
583
25м
65
Закрытый
5.8
Работа с исключениями внутри задачи
↗
1 226
591
29м
62
Закрытый
5.9
Работа с отменой задач
↗
1 210
933
58м
43
Закрытый
5.10
Получение информации о состоянии цикла событий и корутин
↗
1 150
1 036
15м
53
Закрытый
5.11
Работа с асинхронным стеком вызова
↗
1 160
1 016
16м
61
Закрытый
5.12
Работа Сallback функции
↗
1 178
460
84м
52
Закрытый
5.13
Защита корутины от отмены
↗
1 113
485
70м
40
Закрытый
5.14
Работа с группой задач TaskGroup()
↗
914
507
53м
78
Закрытый
5.15
Решаем задачи
↗
1 058
692
268м
15
6. Асинхронные конструкции
2 урока
👁
2 398
👤
939
Закрытый
6.1
async with
↗
1 231
476
29м
57
Закрытый
6.2
async for
↗
1 167
463
41м
55
7. Проблемы синхронизации
5 уроков
👁
7 375
👤
2 896
Закрытый
7.1
Состояние гонки
↗
733
468
18м
42
Закрытый
7.2
Атомарность операций
↗
1 505
879
11м
81
Закрытый
7.3
Мьютекс (mutex)
↗
2 004
585
21м
90
Закрытый
7.4
Решаем проблему состояния гонки
↗
1 657
457
20м
89
Закрытый
7.5
Deadlock
↗
1 476
507
43м
89
8. Работа с очередями в Asyncio
4 урока
👁
4 270
👤
2 602
Закрытый
8.1
Введение в очереди
↗
1 122
1 122
2м
49
Закрытый
8.2
Очередь FIFO
↗
1 124
527
75м
61
Закрытый
8.3
Очередь LIFO
↗
1 020
437
45м
53
Закрытый
8.4
Очередь Priority
↗
1 004
516
25м
54
9. Базовые примитивы синхронизации Asyncio
7 уроков
👁
6 973
👤
4 361
Закрытый
9.1
Введение в примитивы
↗
1 137
1 137
1м
44
Закрытый
9.2
Защита ресурса от одновременного доступа
↗
1 011
779
23м
54
Закрытый
9.3
Ожидание событий для синхронизации доступа
↗
982
530
95м
-10
Закрытый
9.4
Синхронизация задач
↗
980
502
165м
49
Закрытый
9.5
Принцип простого семафора
↗
1 045
698
36м
46
Закрытый
9.6
Принцип ограниченного семафора
↗
906
350
38м
49
Закрытый
9.7
Реализация барьера для защиты одновременного доступа
↗
912
365
46м
52
10. aiofiles
9 уроков
👁
7 781
👤
5 544
Закрытый
10.1
Введение в асинхронное чтение файлов
↗
975
975
2м
51
Закрытый
10.2
Aiofiles введение
↗
925
925
2м
48
Закрытый
10.3
Основные методы и параметры аiofiles
↗
909
438
23м
66
Закрытый
10.4
Методы асинхронного файлового объекта
↗
858
725
28м
53
Закрытый
10.5
Контроль знаний
↗
841
318
66м
49
Закрытый
10.6
Основные методы аiofiles.os
↗
799
678
34м
52
Закрытый
10.7
Контроль знаний
↗
786
440
7м
34
Закрытый
10.8
Асинхронная работа с CSV-файлами
↗
814
637
28м
51
Закрытый
10.9
Решаем задачи
↗
874
408
439м
34
11. aiohttp
9 уроков
👁
7 133
👤
4 293
Закрытый
11.1
Введение в aiohttp
↗
1 106
491
36м
76
Закрытый
11.2
Методы клиентской сессии, часть 1
↗
895
419
49м
58
Закрытый
11.3
Методы клиентской сессии, часть 2
↗
529
371
24м
21
Закрытый
11.4
Жизненный цикл HTTP-запроса
↗
799
393
22м
41
Закрытый
11.5
Работа с Cookies
↗
767
576
26м
48
Закрытый
11.6
Работа с прокси
↗
746
558
15м
43
Закрытый
11.7
HTTP заголовки
↗
723
556
18м
35
Закрытый
11.8
Основы работы с исключениями в aiohttp
↗
685
532
5м
31
Закрытый
11.9
Решаем задачи
↗
883
397
175м
28
2. Многопоточный Python 4.830188679245283
1. Введение в многопоточность
12 уроков
👁
9 313
👤
4 802
Открытый
1.1
Введение
↗
1 907
451
3м
55
Закрытый
1.2
Основные понятия
↗
840
652
11м
37
Открытый
1.3
Что такое потоки
↗
2 395
505
64м
51
Закрытый
1.4
Что такое главный поток
↗
588
447
25м
32
Закрытый
1.5
Ожидание результата от потока
↗
537
415
37м
17
Закрытый
1.6
Ожидание выполнения потока
↗
496
396
34м
28
Закрытый
1.7
Имена потоков
↗
481
356
78м
19
Закрытый
1.8
Атрибуты потока
↗
445
330
50м
23
Закрытый
1.9
Хранение локальных данных потока
↗
426
309
64м
26
Закрытый
1.10
Атомарные операции
↗
406
375
15м
24
Закрытый
1.11
Поток-таймер
↗
403
290
50м
25
Закрытый
1.12
Вспомогательные функции для работы с потоками
↗
389
276
48м
26
2. Работа с пулами потоков
12 уроков
👁
4 118
👤
2 978
Закрытый
2.1
Что такое пулы потоков
↗
606
300
52м
28
Закрытый
2.2
Создание пула потоков
↗
373
297
22м
23
Закрытый
2.3
Отправка задач в пул потоков с помощью submit() и map()
↗
355
274
28м
25
Закрытый
2.4
Получаем результаты из пула потоков
↗
338
261
55м
23
Закрытый
2.5
Что такое Executors
↗
340
261
41м
17
Закрытый
2.6
Ожидание завершения задач
↗
317
244
61м
24
Закрытый
2.7
Инициализация рабочих потоков
↗
312
230
99м
24
Закрытый
2.8
Завершение работы пула потоков
↗
296
156
55м
24
Закрытый
2.9
Количество потоков
↗
284
266
16м
21
Закрытый
2.10
Жизненный цикл пула потоков
↗
288
217
56м
21
Закрытый
2.11
Тестирование и оптимальное количество потоков
↗
287
220
48м
19
Закрытый
2.12
ThreadPool vs AsyncIO
↗
322
252
34м
22
3. Подробнее о Futures
8 уроков
👁
2 102
👤
1 709
Закрытый
3.1
Что такое Futures
↗
300
217
63м
23
Закрытый
3.2
Объект Future
↗
267
245
11м
19
Закрытый
3.3
Методы Future
↗
262
208
19м
16
Закрытый
3.4
Жизненный цикл Future
↗
263
235
13м
21
Закрытый
3.5
Проверяем статус Future
↗
261
208
36м
22
Закрытый
3.6
Добавляем обратный вызов к Future
↗
254
203
51м
18
Закрытый
3.7
Получение исключений из Future
↗
250
203
36м
21
Закрытый
3.8
Всё об отмене Future
↗
245
190
39м
12
4. Потокобезопасные очереди
5 уроков
👁
1 322
👤
988
Закрытый
4.1
Введение в очереди
↗
308
236
15м
20
Закрытый
4.2
Queue
↗
284
183
89м
8
Закрытый
4.3
LifoQueue
↗
242
199
18м
20
Закрытый
4.4
PriorityQueue
↗
248
187
37м
15
Закрытый
4.5
SimpleQueue и исключения
↗
240
183
45м
11
5. Управление потоками и синхронизация
8 уроков
👁
1 904
👤
1 392
Закрытый
5.1
Блокировка взаимного исключения (Lock)
↗
272
160
192м
20
Закрытый
5.2
Реентерабельная блокировка (RLock)
↗
247
207
18м
19
Закрытый
5.3
Синхронизация по событиям (Event)
↗
267
175
82м
9
Закрытый
5.4
Синхронизация с условием (Condition)
↗
250
152
137м
5
Закрытый
5.5
Семафор в потоках (Semaphore)
↗
227
168
32м
11
Закрытый
5.6
Как остановить все задачи
↗
221
189
12м
14
Закрытый
5.7
Остановить все задачи, если одна завершилась неудачей
↗
208
183
10м
15
Закрытый
5.8
Барьер в потоках (Barrier)
↗
212
158
61м
15
6. Advanced Locking - Продвинутое блокирование
5 уроков
👁
1 015
👤
864
Закрытый
6.1
Конкуренция за блокировку
↗
220
179
40м
11
Закрытый
6.2
Чередование блокировок
↗
203
174
36м
14
Закрытый
6.3
Разделение блокировок
↗
201
172
36м
13
Закрытый
6.4
Повторная попытка блокировки с откатом
↗
196
171
31м
2
Закрытый
6.5
Накладные расходы поточной блокировки
↗
195
168
19м
13
7. Практическое применение и продвинутые техники
3 урока
👁
611
👤
394
Закрытый
7.1
Последовательная и параллельная загрузка
↗
221
129
105м
16
Закрытый
7.2
Одновременная загрузка файлов
↗
200
134
55м
15
Закрытый
7.3
Обработка исключений во время выполнения задачи
↗
190
131
53м
12
8. Безопасность потоков
7 уроков
👁
1 359
👤
1 098
Закрытый
8.1
Потокобезопасный счетчик
↗
201
161
16м
13
Закрытый
8.2
Потокобезопасная печать
↗
247
160
18м
15
Закрытый
8.3
Потокобезопасное логирование
↗
186
157
26м
14
Закрытый
8.4
Потокобезопасный словарь
↗
180
155
28м
12
Закрытый
8.5
Потокобезопасный список
↗
177
156
18м
14
Закрытый
8.6
Потокобезопасная запись в файл
↗
178
154
26м
12
Закрытый
8.7
Непостоянные переменные
↗
190
155
16м
12
9. Создание и работа с пулом в модуле multiprocessing
14 уроков
👁
2 531
👤
1 909
Закрытый
9.1
Введение
↗
210
210
1м
19
Закрытый
9.2
ThreadPoolExecutor vs ProcessPoolExecutor
↗
221
170
16м
15
Закрытый
9.3
Синхронное выполнение одиночной задачи
↗
194
137
39м
12
Закрытый
9.4
Асинхронное выполнение одиночной задачи
↗
193
133
50м
16
Закрытый
9.5
Синхронная обработка коллекций
↗
176
125
37м
14
Закрытый
9.6
Асинхронная обработка коллекций
↗
174
122
44м
14
Закрытый
9.7
Итеративная синхронная обработка задач
↗
171
116
82м
10
Закрытый
9.8
Итеративная синхронная обработка задач без сохранения порядка
↗
158
142
9м
15
Закрытый
9.9
Синхронная обработка задач с множеством аргументов
↗
165
112
56м
9
Закрытый
9.10
Асинхронная обработка задач с множеством аргументов
↗
164
111
50м
11
Закрытый
9.11
Какой метод выбрать?
↗
178
129
19м
14
Закрытый
9.12
Сравнение методов
↗
164
133
13м
5
Закрытый
9.13
Лучшие практики использования пула процессов
↗
183
135
19м
13
Закрытый
9.14
Распространенные ошибки
↗
180
134
12м
12