Třída CSemaphore
Objekt třídy CSemaphore "semafor" představuje – objekt synchronizace, který umožňuje omezený počet podprocesů jednoho nebo více procesů pro přístup Maintains spočítat počet podprocesů aktuálně přístup k zadané zdroje.
class CSemaphore : public CSyncObject
Členy
Veřejné konstruktory
Název |
Description |
---|---|
Konstrukce CSemaphore objektu. |
Poznámky
Semafory jsou užitečné při řízení přístupu ke sdílenému prostředku, který podporuje pouze omezený počet uživatelů.Aktuální počet CSemaphore je objekt počtu dalších uživatelů.Při počítání dosáhne nuly, všechny pokusí použít zdroj řízena CSemaphore objekt bude vložen do systémové fronty a počkejte, dokud se buď časový limit nebo počet stoupne nad 0.Maximální počet uživatelů, kteří mohou současně přístup řízených zdrojů je určen při konstrukci CSemaphore objektu.
Použít CSemaphore objekt, sestavit CSemaphore objektu, když je potřeba.Zadejte název chcete čekat na semafor a aplikace by měla zpočátku ji vlastní.Potom můžete přistupovat semafor po návratu konstruktor.Volání CSyncObject::Unlock po přístupu k prostředku řízené.
Alternativní metoda pomocí CSemaphore objektů je přidat proměnnou typu CSemaphore jako člena třídy chcete ovládací prvek.Během stavby řízené objekt volání konstruktoru CSemaphore datový člen určující počáteční přístup count, přístup maximální počet, název semafor (Pokud se použije přes hranice procesu) a požadované atributy zabezpečení.
Řízený přístup k prostředkům CSemaphore objektů tímto způsobem vytvořit proměnné typu buď CSingleLock nebo CMultiLock ve vaší prostředku přístup členské funkce.Potom voláním objektu zámku Lock členské funkce (například CSingleLock::Lock).V tomto okamžiku vaší podproces bude buď získat přístup k prostředku, počkejte zdroje uvolní a získat přístup nebo počkejte na uvolnění prostředků a odchod, nejsou-li získat přístup k prostředku.V každém případě prostředek přístupu způsobem podprocesu.Uvolnit prostředek, pomocí objektu zámku Unlock členské funkce (například CSingleLock::Unlock), nebo povolit uzamčení objektu spadají mimo rozsah.
Také můžete vytvořit CSemaphore samostatný objekt a přístup výslovně před pokusem o přístup k prostředku řízené.Tato metoda při clearer někomu čtení zdrojového kódu, je náchylnější k chybě.
Další informace o použití CSemaphore objekty, najdete v článku při souběžném: použití třídy synchronizace.
Hierarchii dědičnosti
CSemaphore
Požadavky
Záhlaví: afxmt.h