Megosztás a következőn keresztül:


Üzenetátadás függvények

Az Aszinkron ügynökök kódtára számos olyan függvényt biztosít, amelyekkel üzeneteket továbbíthat az összetevők között.

Ezeket az üzenetátadási függvényeket a különböző üzenetblokktípusok használják. Az egyidejűségi futtatókörnyezet által definiált üzenetblokk-típusokról további információt az Aszinkron üzenetblokkok című témakörben talál.

Szakaszok

Ez a témakör a következő üzenetátadási függvényeket ismerteti:

küldés és asend

Az egyidejűség::send függvény szinkron módon küld üzenetet a megadott célnak, az egyidejűség::asend függvény pedig aszinkron módon küld üzenetet a megadott célnak. Mind a sendasend függvények megvárják, amíg a cél azt jelzi, hogy végül elfogadja vagy elutasítja az üzenetet.

A send függvény megvárja, amíg a cél elfogadja vagy elutasítja az üzenetet, mielőtt visszatér. A send függvény akkor ad true vissza, ha az üzenet kézbesítve lett, és false ellenkező esetben. Mivel a send függvény szinkron módon működik, a send függvény megvárja, amíg a cél megkapja az üzenetet, mielőtt visszatér.

Ezzel szemben a asend függvény nem várja meg, hogy a cél elfogadja vagy elutasítsa az üzenetet, mielőtt visszatér. Ehelyett a asend függvény true értéket ad vissza, ha a cél elfogadja az üzenetet, és végül felveszi azt. Ellenkező esetben a asend visszatér false értékkel annak jelzésére, hogy a címzett vagy elutasította az üzenetet, vagy elhalasztotta a döntést arról, hogy átveszi-e az üzenetet.

[Felső]

fogadás és try_receive

Az konkurencia::receive és konkurencia::try_receive függvények adatokat olvasnak egy adott forrásból. A receive függvény megvárja, amíg az adatok elérhetővé válnak, míg a try_receive függvény azonnal visszatér.

Használja a receive függvényt, ha az adatokra van szüksége a folytatáshoz. Akkor használja a try_receive függvényt, ha nem szabad blokkolnia az aktuális környezetet, vagy nincs szüksége az adatokra a folytatáshoz.

[Felső]

Példák

Az send, asend és receive függvényeket használó példákért tekintse meg az alábbi témaköröket:

[Felső]

Lásd még

Aszinkron ügynökök könyvtára
Aszinkron üzenetblokkok
függvény küldése
asend függvény
fogadó függvény
try_receive függvény