В этом посте мы также обсудим async/await и то, как они влияют на фьючерсы, а также то, как предложенные в Rust типы закрепления действуют как связующее звено для обеспечения работы async/await.
Фьючерсы — это способ Rust для выражения асинхронных вычислений, но даже после прочтения документации может быть трудно понять, как все части фьючерсов (и tokio) сочетаются друг с другом. Хотя это может не иметь большого значения, если вы просто *используете* фьючерсы, это становится камнем преткновения, как только вы захотите реализовать асинхронные примитивы самостоятельно. Долгожданные ключевые слова async и await обещают значительно уменьшить трудности при написании и использовании асинхронного кода, но добавляют еще больше тайны того, как все это работает.
В этом потоке мы решаем все это в лоб. Мы рассмотрим, что такое фьючерсы, как они работают, как они используются для представления таких вещей, как асинхронный ввод-вывод (например, сети), как они выполняются и как они развиваются по мере их внедрения в стандартную библиотеку. Мы также обсудим async/await и то, как они влияют на фьючерсы, и как предлагаемые в Rust типы закрепления действуют как клей для обеспечения работы async/await.
Это довольно объемный материал, но мы надеемся, что он послужит хорошим и тщательным обзором фьючерсов в Rust. Если вы хотите узнать, как все это работает, этот поток, вероятно, вас охватит! Чтобы помочь вам сориентироваться, вот основные точки перехода:
0:05:57 — Что такое фьючерсы?
0:16:39 — Как исполняются фьючерсы?
0:26:10 — Очень странные проблемы со звуком
0:29:09 — Опять все хорошо! (вы ничего не пропустили)
0:50:04 — Как вы интегрируете фьючерсы с вводом-выводом?
1:36:11 — Управляя будущим вместе с Токио
1:49:28 — Многопоточное будущее выполнение
2:15:00 — Поток и сток
2:17:11 — (коротко о tokio-io-pool)
2:24:07 — Добавление фьючерсов в стандартную библиотеку
2:30:00 — Произвольные типы себя
2:33:46 — Что такое асинхронность/ожидание?
2:46:58 — Почему async/await сложно?
2:53:34 — Самореферентные типы данных
2:58:48 — Закрепление!
3:50:40 — Вопросы и ответы
Отправка документации tokio организована по адресу https://github.com/tokio-rs/doc-push.
Спасибо, что прочитали ❤
Если вам понравился этот пост, поделитесь им со всеми своими друзьями-программистами!
Подпишитесь на нас в Facebook | Твиттер
Дальнейшее чтение о программировании на Rust
☞ Почему вам стоит перейти с Node.js на Rust в 2019 году
☞ Ржавчина против. Haskell: какой язык лучше всего подходит для разработки API?
☞ 7 причин, по которым вам стоит выучить язык программирования Rust в 2019 году
☞ Введение в веб-разработку на Rust для разработчиков Node.js