Re[7]: Вопрос по корутинам
От: rg45 СССР  
Дата: 28.08.25 06:17
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>А теперь запустите 3 таких машины.


Да не вопрос:

http://coliru.stacked-crooked.com/a/0b96eda764fa66eb

#include <generator>
#include <iostream>
#include <string>
#include <ranges>

std::generator<std::string> runMachine(const int& param) {
    co_yield "Idle";
    co_yield "Started";
    co_yield "Processing";
    while (param < 10)
    {
        co_yield "Waiting";
    }
    co_yield "Stopped";
}

int main() {
    int iValue = 0;
    for (const auto&[state1, state2, state3] : std::views::zip(runMachine(iValue), runMachine(iValue), runMachine(iValue)))
    {
        ++iValue;
        std::cout << "State1: " << state1 << ", State2: " << state2 << ", State3: " << state3 << std::endl;
    }
}

State1: Idle, State2: Idle, State3: Idle
State1: Started, State2: Started, State3: Started
State1: Processing, State2: Processing, State3: Processing
State1: Waiting, State2: Waiting, State3: Waiting
State1: Waiting, State2: Waiting, State3: Waiting
State1: Waiting, State2: Waiting, State3: Waiting
State1: Waiting, State2: Waiting, State3: Waiting
State1: Waiting, State2: Waiting, State3: Waiting
State1: Waiting, State2: Waiting, State3: Waiting
State1: Waiting, State2: Waiting, State3: Waiting
State1: Stopped, State2: Stopped, State3: Stopped

И чо?

Теперь асинхронность появилась?
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 28.08.2025 6:36 rg45 . Предыдущая версия . Еще …
Отредактировано 28.08.2025 6:21 rg45 . Предыдущая версия .
Отредактировано 28.08.2025 6:18 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.