Содержание курса
1. Введение в многопоточность
12 уроков
9 313
4 802
477м
363
Открытый
1.1
Введение
↗
1 907
451
3м 47с
55
Закрытый
1.2
Основные понятия
↗
840
652
11м 3с
37
Открытый
1.3
Что такое потоки
↗
2 395
505
64м 36с
51
Закрытый
1.4
Что такое главный поток
↗
588
447
25м 39с
32
Закрытый
1.5
Ожидание результата от потока
↗
537
415
37м 53с
17
Закрытый
1.6
Ожидание выполнения потока
↗
496
396
34м 14с
28
Закрытый
1.7
Имена потоков
↗
481
356
78м 1с
19
Закрытый
1.8
Атрибуты потока
↗
445
330
50м 36с
23
Закрытый
1.9
Хранение локальных данных потока
↗
426
309
64м 55с
26
Закрытый
1.10
Атомарные операции
↗
406
375
15м 40с
24
Закрытый
1.11
Поток-таймер
↗
403
290
50м 54с
25
Закрытый
1.12
Вспомогательные функции для работы с потоками
↗
389
276
48м 55с
26
2. Работа с пулами потоков
12 уроков
4 118
2 978
567м
271
Закрытый
2.1
Что такое пулы потоков
↗
606
300
52м 9с
28
Закрытый
2.2
Создание пула потоков
↗
373
297
22м 16с
23
Закрытый
2.3
Отправка задач в пул потоков с помощью submit() и map()
↗
355
274
28м 10с
25
Закрытый
2.4
Получаем результаты из пула потоков
↗
338
261
55м 42с
23
Закрытый
2.5
Что такое Executors
↗
340
261
41м 19с
17
Закрытый
2.6
Ожидание завершения задач
↗
317
244
61м 10с
24
Закрытый
2.7
Инициализация рабочих потоков
↗
312
230
99м 51с
24
Закрытый
2.8
Завершение работы пула потоков
↗
296
156
55м 7с
24
Закрытый
2.9
Количество потоков
↗
284
266
16м 58с
21
Закрытый
2.10
Жизненный цикл пула потоков
↗
288
217
56м 41с
21
Закрытый
2.11
Тестирование и оптимальное количество потоков
↗
287
220
48м 15с
19
Закрытый
2.12
ThreadPool vs AsyncIO
↗
322
252
34м 51с
22
3. Подробнее о Futures
8 уроков
2 102
1 709
268м
152
Закрытый
3.1
Что такое Futures
↗
300
217
63м 15с
23
Закрытый
3.2
Объект Future
↗
267
245
11м 59с
19
Закрытый
3.3
Методы Future
↗
262
208
19м 17с
16
Закрытый
3.4
Жизненный цикл Future
↗
263
235
13м 34с
21
Закрытый
3.5
Проверяем статус Future
↗
261
208
36м 24с
22
Закрытый
3.6
Добавляем обратный вызов к Future
↗
254
203
51м 48с
18
Закрытый
3.7
Получение исключений из Future
↗
250
203
36м 19с
21
Закрытый
3.8
Всё об отмене Future
↗
245
190
39м 32с
12
4. Потокобезопасные очереди
5 уроков
1 322
988
204м
74
Закрытый
4.1
Введение в очереди
↗
308
236
15м 8с
20
Закрытый
4.2
Queue
↗
284
183
89м 34с
8
Закрытый
4.3
LifoQueue
↗
242
199
18м 13с
20
Закрытый
4.4
PriorityQueue
↗
248
187
37м 37с
15
Закрытый
4.5
SimpleQueue и исключения
↗
240
183
45м 9с
11
5. Управление потоками и синхронизация
8 уроков
1 904
1 392
544м
108
Закрытый
5.1
Блокировка взаимного исключения (Lock)
↗
272
160
192м 55с
20
Закрытый
5.2
Реентерабельная блокировка (RLock)
↗
247
207
18м 31с
19
Закрытый
5.3
Синхронизация по событиям (Event)
↗
267
175
82м 38с
9
Закрытый
5.4
Синхронизация с условием (Condition)
↗
250
152
137м 27с
5
Закрытый
5.5
Семафор в потоках (Semaphore)
↗
227
168
32м 58с
11
Закрытый
5.6
Как остановить все задачи
↗
221
189
12м 13с
14
Закрытый
5.7
Остановить все задачи, если одна завершилась неудачей
↗
208
183
10м 7с
15
Закрытый
5.8
Барьер в потоках (Barrier)
↗
212
158
61м 1с
15
6. Advanced Locking - Продвинутое блокирование
5 уроков
1 015
864
162м
53
Закрытый
6.1
Конкуренция за блокировку
↗
220
179
40м 38с
11
Закрытый
6.2
Чередование блокировок
↗
203
174
36м 30с
14
Закрытый
6.3
Разделение блокировок
↗
201
172
36м 55с
13
Закрытый
6.4
Повторная попытка блокировки с откатом
↗
196
171
31м 43с
2
Закрытый
6.5
Накладные расходы поточной блокировки
↗
195
168
19м 18с
13
7. Практическое применение и продвинутые техники
3 урока
611
394
212м
43
Закрытый
7.1
Последовательная и параллельная загрузка
↗
221
129
105м 47с
16
Закрытый
7.2
Одновременная загрузка файлов
↗
200
134
55м 44с
15
Закрытый
7.3
Обработка исключений во время выполнения задачи
↗
190
131
53м 41с
12
8. Безопасность потоков
7 уроков
1 359
1 098
149м
92
Закрытый
8.1
Потокобезопасный счетчик
↗
201
161
16м 12с
13
Закрытый
8.2
Потокобезопасная печать
↗
247
160
18м 24с
15
Закрытый
8.3
Потокобезопасное логирование
↗
186
157
26м 9с
14
Закрытый
8.4
Потокобезопасный словарь
↗
180
155
28м 22с
12
Закрытый
8.5
Потокобезопасный список
↗
177
156
18м 39с
14
Закрытый
8.6
Потокобезопасная запись в файл
↗
178
154
26м 16с
12
Закрытый
8.7
Непостоянные переменные
↗
190
155
16м 56с
12
9. Создание и работа с пулом в модуле multiprocessing
14 уроков
2 531
1 909
446м
179
Закрытый
9.1
Введение
↗
210
210
1м 54с
19
Закрытый
9.2
ThreadPoolExecutor vs ProcessPoolExecutor
↗
221
170
16м 12с
15
Закрытый
9.3
Синхронное выполнение одиночной задачи
↗
194
137
39м 39с
12
Закрытый
9.4
Асинхронное выполнение одиночной задачи
↗
193
133
50м 2с
16
Закрытый
9.5
Синхронная обработка коллекций
↗
176
125
37м 9с
14
Закрытый
9.6
Асинхронная обработка коллекций
↗
174
122
44м 25с
14
Закрытый
9.7
Итеративная синхронная обработка задач
↗
171
116
82м 56с
10
Закрытый
9.8
Итеративная синхронная обработка задач без сохранения порядка
↗
158
142
9м 38с
15
Закрытый
9.9
Синхронная обработка задач с множеством аргументов
↗
165
112
56м 49с
9
Закрытый
9.10
Асинхронная обработка задач с множеством аргументов
↗
164
111
50м 3с
11
Закрытый
9.11
Какой метод выбрать?
↗
178
129
19м 48с
14
Закрытый
9.12
Сравнение методов
↗
164
133
13м 1с
5
Закрытый
9.13
Лучшие практики использования пула процессов
↗
183
135
19м 39с
13
Закрытый
9.14
Распространенные ошибки
↗
180
134
12м 50с
12