vak: (Default)
[personal profile] vak
В языке Rust есть интересная фича: кооперативная многозадачность, реализованная в форме async/await и future. Интересно, можно ли на её основе сбацать простой симулятор цифровой логики. Когда-то я сделал такое на простом Си ("Симулятор RTL - это очень просто"). Но в Си пришлось задействовать setjmp/longjmp для переключение потоков, а тут вроде всё нужное прямо в языке дано.

Имеется хорошая статья, объясняющая подробности кооперативной многозадачности в Русте: https://os.phil-opp.com/async-await/

Date: 2021-04-16 21:01 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Для честного тестирования надо иметь Одно и то же приложение в 2-х вариантах: sync & async.
Маловероятно что кто-то поддерживает так 2 ветки.

Я полагаю, производительность не сильно отличается в нормальном режиме,
Но когда появляются запросы которые подвисли, например по причине ожидания внешних сервисов, то в варианте с Thread Pool начнется голодание

Date: 2021-04-17 07:18 (UTC)
mopexod: (Default)
From: [personal profile] mopexod
Да, согласен.