C++ Actor Framework 能否以保证两个actor之间消息顺序的方式使用?我在手册中找不到任何关于此的内容。
问问题
459 次
1 回答
4
如果您只有两个参与者直接通信,CAF 保证消息按照它们发送的顺序到达。只有多跳场景会导致不确定性和消息重新排序。
auto a = spawn(A);
self->send(a, "foo");
self->send(a, 42); // arrives always after "foo"
在接收端,可以通过改变参与者的行为来改变消息处理顺序become
:
[=](int) {
self->become(
keep_behavior,
[=](const std::string&) {
self->unbecome();
}
);
}
在上面的示例中,这将处理消息int
之前的string
消息,即使它们以相反的顺序到达演员的邮箱。
于 2015-10-04T08:56:19.660 回答