Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit deel van de documentatie worden de belangrijke kenmerken van de taakplanner voor gelijktijdige uitvoering beschreven. De Task Scheduler is handig als u de prestaties van uw bestaande code wilt verfijnen die gebruikmaakt van de Gelijktijdigheidsruntime.
Belangrijk
De Task Scheduler is niet beschikbaar via een UWP-app (Universal Windows Platform). Zie Asynchrone bewerkingen maken in C++ voor UWP-apps voor meer informatie.
In Visual Studio 2015 en hoger gebruiken de concurrency::task-klasse en gerelateerde typen in ppltasks.h de Windows ThreadPool als planner. Dit onderwerp is niet meer van toepassing op typen die zijn gedefinieerd in ppltasks.h. Parallelle algoritmen zoals parallel_for blijven de Gelijktijdigheidsruntime gebruiken als standaardplanner.
Aanbeveling
De Gelijktijdigheidsruntime biedt een standaardplanner en daarom hoeft u er geen te maken in uw toepassing. Omdat task scheduler u helpt bij het verfijnen van de prestaties van uw toepassingen, raden we u aan om te beginnen met de PPL (Parallel Patterns Library) of de Asynchrone agents-bibliotheek als u niet bekend bent met de Gelijktijdigheidsruntime.
De Task Scheduler plant en coördineert taken tijdens runtime. Een taak is een werkeenheid waarmee een specifieke taak wordt uitgevoerd. Een taak kan doorgaans parallel worden uitgevoerd met andere taken. Het werk dat wordt uitgevoerd door taakgroepitems, parallelle algoritmen en asynchrone agents zijn allemaal voorbeelden van taken.
De Task Scheduler beheert de details die betrekking hebben op het efficiënt plannen van taken op computers met meerdere rekenresources. De Task Scheduler maakt ook gebruik van de nieuwste functies van het onderliggende besturingssysteem. Toepassingen die gebruikmaken van de Gelijktijdigheidsruntime worden daarom automatisch geschaald en verbeterd op hardware met uitgebreide mogelijkheden.
Vergeleken met andere gelijktijdigheidsmodellen worden de verschillen tussen preventieve en coöperatieve planningsmechanismen beschreven. Task Scheduler maakt gebruik van coöperatieve planning en een werk stelend algoritme samen met de preventieve scheduler van het besturingssysteem om het maximale gebruik van verwerkingsbronnen te bereiken.
De Gelijktijdigheidsruntime biedt een standaardplanner, zodat u geen infrastructuurdetails hoeft te beheren. Daarom gebruikt u de Taakplanner doorgaans niet rechtstreeks. Als u echter wilt voldoen aan de kwaliteitsbehoeften van uw toepassing, kunt u de Task Scheduler gebruiken om uw eigen planningsbeleid te bieden of planners te koppelen aan specifieke taken. Stel dat u een parallelle sorteerroutine hebt die niet groter is dan vier processors. U kunt scheduler-beleid gebruiken om een scheduler te maken waarmee maximaal vier gelijktijdige taken worden gegenereerd. Door de sorteerroutine op deze planner uit te voeren, kunnen andere actieve planners alle resterende verwerkingsresources gebruiken.
Verwante onderwerpen
| Titel | Beschrijving |
|---|---|
| Schedulerinstanties | Beschrijft scheduler-exemplaren en hoe u de concurrency::Scheduler en concurrency::CurrentScheduler klassen gebruikt om ze te beheren. Gebruik scheduler-exemplaren wanneer u expliciet planningsbeleid wilt koppelen aan specifieke typen workloads. |
| Scheduler-beleid | Beschrijft de rol van planningsbeleid. Gebruik scheduler-beleid als u de strategie wilt beheren die de planner gebruikt bij het beheren van taken. |
| Groepen plannen | Beschrijft de rol van planningsgroepen. Gebruik planningsgroepen wanneer u een hoge mate van lokalisatie tussen taken nodig hebt, bijvoorbeeld wanneer een groep gerelateerde taken baat heeft bij het uitvoeren op hetzelfde processorknooppunt. |
| Lichtgewicht taken | Beschrijft de rol van lichtgewicht taken. Lichtgewicht taken zijn handig wanneer u bestaande code aanpast om de planningsfunctionaliteit van de Gelijktijdigheidsruntime te gebruiken. |
| Contexten | Beschrijft de rol van contexten, de concurrency::wait functie en de concurrency::Context klasse. Gebruik deze functionaliteit wanneer u controle nodig hebt over wanneer contexten blokkeren, deblokkeren en opleveren, of wanneer u oversubscriptie in uw toepassing wilt inschakelen. |
| geheugenbeheerfuncties | Hierin worden de concurrency::Alloc en concurrency::Free functies beschreven. Deze functies kunnen de geheugenprestaties verbeteren door geheugen gelijktijdig toe te wijzen en vrij te maken. |
| Vergelijking met andere gelijktijdigheidsmodellen | Beschrijft de verschillen tussen preventieve en coöperatieve planningsmechanismen. |
| Bibliotheek met parallelle patronen (PPL) | Hierin wordt beschreven hoe u verschillende parallelle patronen gebruikt, bijvoorbeeld parallelle algoritmen, in uw toepassingen. |
| Bibliotheek met asynchrone agents | Hierin wordt beschreven hoe u asynchrone agents in uw toepassingen gebruikt. |
| Gelijktijdigheidsruntime | Beschrijft de Gelijktijdigheidsruntime, die parallelle programmering vereenvoudigt en koppelingen naar verwante onderwerpen bevat. |