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.
A dokumentáció jelen részében található témakörök az egyidejűségi futtatókörnyezeti feladatütemező fontos funkcióit ismertetik. A Feladatütemező akkor hasznos, ha finomhangolni szeretné az egyidejűségi futtatókörnyezetet használó meglévő kód teljesítményét.
Fontos
A Feladatütemező nem érhető el univerzális Windows-platform (UWP) alkalmazásból. További információ: Aszinkron műveletek létrehozása C++ nyelven UWP-alkalmazásokhoz.
A Visual Studio 2015-ben és újabb verzióiban a concurrency::task osztály és a kapcsolódó típusok a ppltasks.h fájlban a Windows ThreadPoolt használják ütemezőként. Ez a témakör már nem vonatkozik a ppltasks.h fájlban definiált típusokra. A párhuzamos algoritmusok, például parallel_for továbbra is az egyidejűségi futtatókörnyezetet használják alapértelmezett ütemezőként.
Jótanács
Az egyidejűségi futtatókörnyezet alapértelmezett ütemezőt biztosít, ezért nem kell létrehoznia egyet az alkalmazásban. Mivel a Feladatütemező segít az alkalmazások teljesítményének finomhangolásában, javasoljuk, hogy a párhuzamos minták tárával (PPL) vagy az aszinkron ügynökök tárával kezdje, ha még nem használja az egyidejűségi futtatókörnyezetet.
A Feladatütemező futásidőben ütemezi és koordinálja a tevékenységeket. A tevékenység egy adott feladatot végrehajtó munkaegység. A tevékenységek általában más tevékenységekkel párhuzamosan is futtathatók. A feladatcsoportelemek, a párhuzamos algoritmusok és az aszinkron ügynökök által végzett munka mind példa a feladatokra.
A Feladatütemező kezeli azokat a részleteket, amelyek a feladatok hatékony ütemezéséhez kapcsolódnak a több számítási erőforrással rendelkező számítógépeken. A Feladatütemező az alapul szolgáló operációs rendszer legújabb funkcióit is használja. Ezért az egyidejűségi futtatókörnyezetet használó alkalmazások automatikusan méreteznek és fejlesztenek a bővített képességekkel rendelkező hardvereken.
Az egyéb egyidejűségi modellek összehasonlítása a megelőző és a kooperatív ütemezési mechanizmusok közötti különbségeket ismerteti. A Feladatütemező kooperatív ütemezést és munkalopási algoritmust használ az operációs rendszer preemptív ütemezőjével együtt a feldolgozási erőforrások maximális kihasználtságának elérése érdekében.
Az egyidejűségi futtatókörnyezet alapértelmezett ütemezőt biztosít, így nem kell kezelnie az infrastruktúra részleteit. Ezért általában nem használja közvetlenül a Feladatütemezőt. Az alkalmazás minőségi igényeinek kielégítése érdekében azonban a Feladatütemezővel saját ütemezési szabályzatot biztosíthat, vagy ütemezőket társíthat meghatározott tevékenységekhez. Tegyük fel például, hogy van egy párhuzamos rendezési rutinja, amely nem lépi túl a négy processzort. Ütemezőszabályzatok használatával olyan ütemezőt hozhat létre, amely legfeljebb négy egyidejű tevékenységet hoz létre. A rendezési rutin ezen az ütemezőn való futtatásával más aktív ütemezők is használhatják a fennmaradó feldolgozási erőforrásokat.
Kapcsolódó témakörök
| Cím | Leírás |
|---|---|
| Ütemezőpéldányok | Ismerteti az ütemezőpéldányokat, és azt, hogyan használja a concurrency::Scheduler és concurrency::CurrentScheduler osztályokat azok kezelésére. Ütemezőpéldányokat akkor használjon, ha explicit ütemezési szabályzatokat szeretne hozzárendelni bizonyos típusú számítási feladatokhoz. |
| Ütemezési Szabályzatok | Az ütemezési irányelvek szerepét ismerteti. Ütemezőszabályzatokat akkor használjon, ha azt a stratégiát szeretné szabályozni, amelyet az ütemező a tevékenységek kezelésekor használ. |
| Csoportok ütemezése | Az ütemezési csoportok szerepét ismerteti. Ütemezési csoportokat akkor használjon, ha a tevékenységek között magas szintű területi beállításokra van szükség, például ha egy kapcsolódó tevékenységcsoport ugyanazon a processzorcsomóponton hajt végre műveleteket. |
| Egyszerűsített feladatok | Az egyszerűsített feladatok szerepét ismerteti. Az egyszerűsített feladatok akkor hasznosak, ha a meglévő kódot az egyidejűségi futtatókörnyezet ütemezési funkcióihoz igazítja. |
| Környezetben | A környezetek, a concurrency::wait függvény és az concurrency::Context osztály szerepét ismerteti. Ezt a funkciót akkor használhatja, ha szabályoznia kell, hogy a környezetek mikor blokkolják, feloldják a tiltást és a hozamot, vagy ha engedélyezni szeretné a túljelentkezést az alkalmazásban. |
| memóriakezelési függvények | A concurrency::Alloc és concurrency::Free függvényeket ismerteti. Ezek a függvények a memória egyidejű kiosztásával és felszabadításával javíthatják a memória működését. |
| Összehasonlítás más egyidejűségi modellekkel | A preemptív és a kooperatív ütemezési mechanizmusok közötti különbségeket ismerteti. |
| Párhuzamos minták kódtára (PPL) | Leírja, hogyan használhat különböző párhuzamos mintákat, például párhuzamos algoritmusokat az alkalmazásokban. |
| Aszinkron ügynökök könyvtára | Ismerteti, hogyan használhat aszinkron ügynököket az alkalmazásokban. |
| Párhuzamossági futtatókörnyezet | Az egyidejűségi futtatókörnyezetet ismerteti, amely leegyszerűsíti a párhuzamos programozást, és kapcsolódó témakörökre mutató hivatkozásokat tartalmaz. |