Конкурентность в Rust: асинхронность, потоки и параллелизм — Алексей Воронов — обложка книги
300 страниц
Rust
PDF
4.5

Конкурентность в Rust: асинхронность, потоки и параллелизм

Практическое руководство по написанию быстрых и надёжных конкурентных программ

Автор:

Год:

Краткое содержимое:

Книга «Конкурентность в Rust» — это исчерпывающее руководство, посвящённое одной из самых мощных и сложных тем в экосистеме Rust. Rust славится своей способностью предотвращать гонки данных и другие ошибки многопоточности на этапе компиляции, но чтобы в полной мере использовать эти возможности, необходимо глубокое понимание концепций конкурентности.

Эта книга проведёт вас от основ до продвинутых техник. Вы начнёте с теории: что такое конкурентность и параллелизм, в чём их различие и почему Rust подходит для них как никакой другой язык. Затем вы перейдёте к практическим примерам, написанным на актуальной версии Rust (2024).

  • Основы многопоточности: создание и управление потоками, передача владения между потоками, использование std::thread.
  • Безопасный обмен данными: мьютексы (Mutex), блокировки чтения-записи (RwLock), атомарные операции и счётчики ссылок Arc.
  • Каналы и передача сообщений: модель CSP с использованием std::sync::mpsc и крейта crossbeam.
  • Асинхронное программирование: глубокое погружение в async/await, таски, Future, select! и популярные рантаймы (tokio, async-std).
  • Продвинутые паттерны: пулы потоков, параллельные итераторы (rayon), lock-free структуры данных и акторы.
  • Профилирование и отладка: инструменты для поиска узких мест, детекторы гонок (ThreadSanitizer) и написание тестов для конкурентного кода.

Для кого эта книга?

  • Разработчики на Rust, которые хотят перейти от последовательного кода к многопоточному.
  • Программисты, знакомые с другими языками (C++, Go, Java) и желающие понять, как Rust решает проблемы конкурентности.
  • Инженеры, работающие над высоконагруженными системами, веб-серверами, сетевыми приложениями или играми.

Что вы узнаете:

  • Как избежать deadlock'ов, livelock'ов и гонок данных.
  • Когда использовать потоки, а когда — асинхронность.
  • Как правильно проектировать архитектуру конкурентных приложений.
  • Как писать код, который масштабируется на многоядерных процессорах.

Все примеры кода доступны в репозитории и снабжены подробными комментариями. Книга подойдёт как новичкам, уже знающим основы Rust, так и опытным разработчикам, желающим систематизировать знания.

Погрузитесь в мир конкурентного программирования на Rust и научитесь создавать быстрые, надёжные и безопасные приложения!

Рекомендаций