@Sasha_88

Асинхронное программирование — это кооперативная многозадачность?

Я знаю что такое кооперативная многозадачность и в принципе как она реализуется. Обычно в языке нужны указатели на функции или процедурные переменные, если язык паскалеподобный. И что-то типа мьютекса или монитора. Там главное чтобы программы были так реализованы, чтобы давать другим программам выполняться, передавая им управление.
А асинхронное программирование с синтаксисом async await и объектами future работают также? Там ведь тоже происходят callbacks., когда одна часть выполнила работу и вызывает другую. И почему когда говорят об асинхронном программировании, то в определении этого понятия не указывается это многопоточное выполнение или нет. Речь вообще идет о многопоточности?, А то в примерах на Rust или C# иногда встречается, что некоторый разный код на самом деле запускается в одном потоке. Экономя переключения с одного потока на другой.
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Многопоточность
Седой и строгий
Для понимания термина важен контекст. Например в Java асинхронным выполнением обычно называют любой неблокирующий вызов, чаще всего выполняемый отдельным потоком. В Python же асинхронность это именно кооперативная многозадачность, реализуемая сопрограммами, выполняемыми в цикле событий одним потоком.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы