Skupiny plánů
Tento dokument popisuje roli plán skupiny v souběžném běhu.A plán skupiny affinitizes nebo skupiny, související úkoly společně.Plánovač každý má jednu nebo více skupin plánu.Použití plánu skupiny při vyžadujete vysoký stupeň lokality mezi úkoly, například při skupiny souvisejících úloh výhody spuštění ve stejném uzlu procesoru.Naopak používáte Plánovač instance aplikace má zvláštním požadavkům na jakost, například když chcete omezit množství zpracování zdrojů, které jsou přiděleny sadu úkolů.Další informace o plánovači instancí viz Instance plánovače.
Tip
Runtime souběžnost poskytuje výchozí Plánovač, a proto není nutné ji vytvořit v aplikaci.Protože služba Plánovač úloh pomáhá optimalizovat výkon aplikací, doporučujeme spuštění se Knihovna PPL (Parallel Patterns Library) nebo Knihovna asynchronních agentů Pokud runtime souběžnosti.
Každý Scheduler objekt má výchozí plán skupiny pro každý uzel plánování.A plánování uzlu mapuje základní topologie systému.Modul runtime vytvoří jeden uzel plánování pro každý balíček procesoru nebo uzel architektura paměti nerovnoměrně (NUMA), ať číslo je větší.Pokud není přidružíte explicitně úkolu plánu skupiny, zvolí Plánovač skupiny přidat úkol.
SchedulingProtocol Plánovač zásada ovlivňuje pořadí, ve kterém spustí Plánovač úloh v každé skupině plánu.Při SchedulingProtocol je nastavena na EnhanceScheduleGroupLocality (což je výchozí nastavení), služba Plánovač úloh vybere další úkol ze skupiny plán, který pracuje na dokončení aktuální úlohy nebo ve výnosech.Plánovač úloh prohledá aktuální skupinu plánu práce před přesune následující skupiny k dispozici.Naopak, když SchedulingProtocol je nastavena na EnhanceForwardProgress, Plánovač přesune na další skupinu plánu po dokončení každého úkolu nebo výnosy.Příklad porovná tyto zásady, viz Postupy: Použití skupin plánů k ovlivnění pořadí provádění.
Používá runtime concurrency::ScheduleGroup třídy plán skupiny.Vytvoření ScheduleGroup objekt, zavolejte concurrency::CurrentScheduler::CreateScheduleGroup nebo concurrency::Scheduler::CreateScheduleGroup metoda.Používá runtime počítání odkazů mechanismus řízení životnosti ScheduleGroup objekty, stejně jako s Scheduler objektů.Při vytváření ScheduleGroup objektu modulu runtime nastaví čítač na jeden odkaz.Concurrency::ScheduleGroup::Reference metoda referenčních čítačů zvýší o jednu.Concurrency::ScheduleGroup::Release metoda sníží Čítač jeden odkaz.
Mnoho typů v souběžném běhu umožňují přiřadit objekt spolu s plán skupiny.Například concurrency::agent bloku třídy a zpráva třídy, například concurrency::unbounded_buffer, concurrency::join, a concurrency::timer, přetížených verzí konstruktoru, které poskytují ScheduleGroup objektu.Používá runtime Scheduler objekt, který je spojen s tímto ScheduleGroup objektu k naplánování.
Můžete také použít concurrency::ScheduleGroup::ScheduleTask metoda lehký úkol naplánovat.Další informace o úkolech lehký, viz Prosté úlohy.
Příklad
Příklad, naplánovat použití skupin řídit pořadí provádění úloh, viz Postupy: Použití skupin plánů k ovlivnění pořadí provádění.
Viz také
Úkoly
Postupy: Použití skupin plánů k ovlivnění pořadí provádění