The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз платформы разработки асинхронных приложений Tokio 1.13.0"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Доступны два режима работы форума: "Раскрыть нити" и "Свернуть нити".
. "Релиз Tokio 1.13.0, платформы для создания асинхронных прило..." +4 +/
Сообщение от Ordu (ok), 31-Окт-21, 13:12 
Чтобы async/await работали бы, нужен движок, т.н. рантайм, который будет шедулить выполнение задач. В отличие от Go раст не реализует рантайм: возможны разные подходы к реализации, и, во-первых, прибивать какой-то один гвоздями к расту как-то некомильфо, во-вторых, такой рантайм -- это проблема сильно не того класса, которым заняты разработчики rustc и std. Это уже _системное_ программирование, а не создание языка под системное программирование. Rust лишь предоставляет необходимые примитивы, такие как std::future::Future, и немного синтаксического сахара в виде кейвордов async/await.

И, поэтому, если хочется async/await, то либо ты берёшь и пишешь свой рантайм, дёргая epoll, отслеживая состояния задач и тп. Либо ты берёшь tokio, который делает это за тебя. tokio при этом не только движок, но параллельно кучу других няшностей даёт, которые могут быть весьма полезны.

Свой рантайм может быть нужен, ежели ты под голое железо пишешь, и у тебя там нет никаких epoll, откуда тягать события, и вместо него есть прерывания и поллинг. Или, возможно, ежели более заточенную под твою задачу реализацию рантайма сделать, то можно несколько процентов производительности выжать -- или может не несколько, я не вдавался в подробности.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз платформы разработки асинхронных приложений Tokio 1.13.0, opennews, 31-Окт-21, 08:09  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру