В этом посте мы также обсудим 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