ДАЁШЬ АСИНХРОННОСТЬ В МАССЫ, ИЛИ КАК УСКОРИТЬСЯ НАШАРУ
Сергей Калинецhttp://tdd4.net
ПРО МЕНЯ
• Более 10 лет опыта в разработке• Руковожу разработкой в киевском офисе
CompatibL• Автор http://tdd4.net• Тренер по инженерным практикам в
Scrumguides• Ведущий клуба практического
программирования Stratoplan.ru
Многопоточность?
АСИНХРОННОСТЬ, ЭТО..
КОГДА-ТО…
МНОГОЗАДАЧНОСТЬ
RACE CONDITION
БЛОКИРОВКИ
DEADLOCKS
UNHANDLED EXCEPTIONS
NEW THREAD()
• Или нет?• Покажи код!
АСИНХРОННОСТЬ, ЭТО…
• Не многопоточность!• Отсутствие блокировок• Concurrency рулит вызываемая сторона• Новый уровень абстракции• Решение проблемы времени ожидания
TASK
• Сигнальная конструкция• Может возвращать значения• Есть поддержка продолжений• Обрабатывают исключения
ВРЕМЯ ОЖИДАНИЯ
• Latency, если по английски• Бывает:– Compute-bound– I/O bound
ASYNC CTP
• Таски на стероидах• Task-based async
pattern• Интеграция с RX
посмотрим на код
МАСШТАБИРУЕМОСТЬ
ЧТО В ИТОГЕ
• Избегаем ручного управления потоками
• Решаем проблемы асинхронно
• Начинаем использовать Async CTP уже сейчас