19
ДАЁШЬ АСИНХРОННОСТЬ В МАССЫ, ИЛИ КАК УСКОРИТЬСЯ НАШАРУ Сергей Калинец http://tdd4.net @skalinets [email protected]

Даёшь асинхронность в массы, или как ускориться нашару

Embed Size (px)

DESCRIPTION

Cлайды к моему доклад с Ciklum .NET saturday. Кроме них еще было много кода, который можно найти на http://www.albahari.com/ConcurrencyDemos.zip

Citation preview

Page 1: Даёшь асинхронность в массы, или как ускориться нашару

ДАЁШЬ АСИНХРОННОСТЬ В МАССЫ, ИЛИ КАК УСКОРИТЬСЯ НАШАРУ

Сергей Калинецhttp://tdd4.net

@[email protected]

Page 2: Даёшь асинхронность в массы, или как ускориться нашару

ПРО МЕНЯ

• Более 10 лет опыта в разработке• Руковожу разработкой в киевском офисе

CompatibL• Автор http://tdd4.net• Тренер по инженерным практикам в

Scrumguides• Ведущий клуба практического

программирования Stratoplan.ru

Page 3: Даёшь асинхронность в массы, или как ускориться нашару
Page 4: Даёшь асинхронность в массы, или как ускориться нашару

Многопоточность?

АСИНХРОННОСТЬ, ЭТО..

Page 5: Даёшь асинхронность в массы, или как ускориться нашару

КОГДА-ТО…

Page 6: Даёшь асинхронность в массы, или как ускориться нашару

МНОГОЗАДАЧНОСТЬ

Page 7: Даёшь асинхронность в массы, или как ускориться нашару

RACE CONDITION

Page 8: Даёшь асинхронность в массы, или как ускориться нашару

БЛОКИРОВКИ

Page 9: Даёшь асинхронность в массы, или как ускориться нашару

DEADLOCKS

Page 10: Даёшь асинхронность в массы, или как ускориться нашару

UNHANDLED EXCEPTIONS

Page 11: Даёшь асинхронность в массы, или как ускориться нашару

NEW THREAD()

• Или нет?• Покажи код!

Page 12: Даёшь асинхронность в массы, или как ускориться нашару

АСИНХРОННОСТЬ, ЭТО…

• Не многопоточность!• Отсутствие блокировок• Concurrency рулит вызываемая сторона• Новый уровень абстракции• Решение проблемы времени ожидания

Page 13: Даёшь асинхронность в массы, или как ускориться нашару

TASK

• Сигнальная конструкция• Может возвращать значения• Есть поддержка продолжений• Обрабатывают исключения

Page 14: Даёшь асинхронность в массы, или как ускориться нашару
Page 15: Даёшь асинхронность в массы, или как ускориться нашару

ВРЕМЯ ОЖИДАНИЯ

• Latency, если по английски• Бывает:– Compute-bound– I/O bound

Page 16: Даёшь асинхронность в массы, или как ускориться нашару

ASYNC CTP

• Таски на стероидах• Task-based async

pattern• Интеграция с RX

посмотрим на код

Page 17: Даёшь асинхронность в массы, или как ускориться нашару

МАСШТАБИРУЕМОСТЬ

Page 18: Даёшь асинхронность в массы, или как ускориться нашару

ЧТО В ИТОГЕ

• Избегаем ручного управления потоками

• Решаем проблемы асинхронно

• Начинаем использовать Async CTP уже сейчас

Page 19: Даёшь асинхронность в массы, или как ускориться нашару

СПАСИБО!

Сергей Калинецhttp://tdd4.net

@[email protected]