Skip to main content

Mi az aktív tárgy?

A számítógépes programozásban és a tervezésben az aktív objektum olyan típusú tervezési minta, amely felhasználható annak biztosítására, hogy valamilyen szolgáltatás mindig elérhető legyen egy többszálú vagy egyidejű rendszerben.Az aktív objektum egy olyan objektum, amely egy mechanizmust hajt végre, így a külső objektumokból be tudják fogadni és feldolgozni anélkül, hogy a külső objektumokat arra kényszerítenék, hogy várják meg a végrehajtást.Ez a mechanizmus lehetővé teszi számos olyan objektum számára is, amely egyidejűleg futhat, hogy aktív objektumokat használjon anélkül, hogy hosszú blokkolási időpontokban lehetőségeket használna, amelyekben az egyidejű folyamatoknak meg kell állniuk, és meg kell várniuk a hozzáférést.Ezt leggyakrabban úgy érik el, hogy az aktív objektumokat egy nyilvánosan hozzáférhető felületbe csomagolják, amelyet proxynak hívnak, majd egy sor sorrendszert az objektumok belsejébe valósítva, így az üzenetek későbbi feldolgozáshoz tárolódnak.Ez olyan tervezési mintát hoz létre, amelyben az objektumok üzeneteket küldenek aktív objektumoknak, majd folytatják feldolgozásukat, amíg az aktív objektum fel nem dolgozza az üzenetet, és később tájékoztatja az eredmények hívó objektumait, hogy ennek megfelelően frissítsék állapotukat., egy normál objektumot passzív objektumnak lehet nevezni.Egy egyszerű programpéldában egy passzív objektum lehet chat -kiszolgáló -reléként működni, amelyben a távoli objektumok vegye fel a kapcsolatot a passzív objektummal, hogy üzenetet továbbítson a szerver mindenki másnak.Amikor a passzív szerver objektum egy távoli objektumról csevegési üzenetet kap, akkor azonnal meg kell kezelnie a kérést, majd azonnal el kell küldenie a kimenetet, miközben a távoli objektum megállítja a saját végrehajtását, amíg a folyamat meg nem történik, ez egy blokkolás néven ismert hatás.Különböző szálak létrehozása a programon belül meg tudja oldani a végrehajtás blokkolásának problémáját, de ezután a szinkronizálás problémáit kezdeményezi.Azt is becsomagolnák valamilyen interfészbe, amelyet proxynak neveznek, amely szintén külön szálban fut, néha a fő program végrehajtási szálban.Amikor egy távoli objektum azt akarja, hogy a Server objektum csevegőüzenetet küldjön, akkor kapcsolatba lép a proxy objektummal, átadja az összes szükséges információt, majd visszatér a normál végrehajtási állapotba, ahelyett, hogy várakozásA távoli objektumból származó információk egy olyan üzenetbe, amelyet egy sorra továbbítanak az aktív objektum feldolgozásához.Ezen a ponton mind a proxy interfész, mind a távoli objektum szabadon folytathatja a végrehajtást, és nem blokkolhatók.Eközben az aktív objektum úgy működik, hogy a sor üres maradjon, és minden bejövő üzenetet feldolgozzon.Ha a hívó objektumhoz valamilyen információt igényel az aktív objektum visszaadása, akkor a visszahívási struktúra felhasználható a távoli objektum tájékoztatására az állapotváltozásokról.