Здравствуйте, BulatZiganshin, Вы писали:
BZ>и я не согласен с твоей идеей что в C++ можно использовать только акторы. зелёные потоки — это по сути короутины, выполняемые из пула потоков, с автоматическим yield. ближайшим их аналогом в C++ являются те же самые короутины с ручным yield. при этом логика программы остаётся понятной, и очевидно кого срубать при возникновении исключения.
У меня нет такой идеи. Даже в первом своем сообщении в этой теме в качестве примера фреймворка для C++ был приведен фреймворк Synca, который как раз сопрограммы и использует.
BZ>чем отличаются акторы от task parallelism, я пока не в курсе
В task parallelism, если я правильно помню, есть однородный поток задач, которые обрабатываются одним и тем же образом. Грубо говоря, идет поток текстовых сообщений, которые нужно зашифровать и подписать.
Акторы могут принимать поток из разных типов сообщений, обработка которых может зависеть от состояния актора. Грубо говоря, актор может представлять из себя читатель MQ-шных топиков, откуда идут запросы check_client, money_reserve, money_transfer_begin, money_transfer_status, money_transfer_cancel и т.д. При этом актор может проконтролировать, что сейчас он перегружен, не способен нормально обслуживать заявки и на запросы, скажем check_client/money_reserve/money_transfer_begin будет отвечать специальным кодом ошибки "overloaded".