-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathasync.yml
More file actions
49 lines (37 loc) · 3.37 KB
/
Copy pathasync.yml
File metadata and controls
49 lines (37 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
title: Async поток
active: 1
order: 1
**Асинхронное программирование**
Сетевые библиотеки, например `twisted <http://twistedmatrix.com/>`_, `tornado
<http://www.tornadoweb.org/>`_, `gevent <http://www.gevent.org/>`_, `tulip
<http://www.python.org/dev/peps/pep-3156/>`_ — при кажущейся разнице в подходах
имеют очень похожее ядро, называемое reactor, io loop, hub, event loop
соответственно. Именно созданием этого ядра с нуля своими руками мы и займемся.
**Цель курса:** дать знания о том, как происходит работа с сетевыми
подключениями (сокетами) на примере создания собственной библиотеки.
**Требования к участникам:** знание Python на достаточно приличном уровне.
Введения в программирование не будет, с другой стороны создаваемый код не
потребует чего-то сложного. Все сложности будут в работе с сетью а не в
создании хитрых питоновских конструкций.
Потребуется Python 3.3. Хотя код мало зависит от версии языка, всё же в Python
3.3 появились некоторые удобные штуки которыми мы воспользуемся.
**Операционная система:** Linux, MacOS X или FreeBSD на выбор. Если есть
сильное желание писать на Windows — тоже можно.
**Коротко о чём будут занятия:**
* Написание примитивного клиент-серверного кода на потоках.
* Объяснение почему производительные программы такой подход не используют.
Нужно делать на epoll или kqueue, в крайнем случае select. Создание своего
event loop. Сначала для обработки отложенных событий. Что это такое и какой
должен быть интерфейс — расскажу по ходу дела.
* Описание того, как работает select/epoll/kqueue. Добавляем к event loop
работу с TCP сокетами, основанную на обратных вызовах. Правильная обработка
ошибок.
* Добавляем понятия транспорта-протокола.
* Строим поверх этого удобный интерфейс для пользовательского кода. На yeild
from или greenlets — по желанию.
* Окончательный разбор результатов, ответы на возникшие вопросы.
Получившийся код в целом будет в основе следовать дизайну tulip в сильно
упрощённом виде.
Курс состоит из шести занятий. Лектор: **Андрей Светлов**
Каждое занятие длится 2 часа.
Стоимость занятия: 300 грн.