Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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