2 つのアクター間のメッセージの順序を保証するような方法で C++ Actor Framework を使用できますか? マニュアルでこれについて何も見つけることができませんでした。
質問する
459 次
1 に答える
4
直接通信するアクターが 2 つしかない場合、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 に答える