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


Feladatütemező (egyidejűségi futtatókörnyezet)

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.

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.