Aracılığıyla paylaş


Zamanlama grupları

Bu belge eşzamanlılık çalışma zamanında zamanlama grupları açıklar.A Zamanlama grubu affinitizes ya da grupları, ilgili görevler birlikte.Her bir Zamanlayıcı, bir veya daha fazla zamanlama grupları vardır.Bir grup ilgili görevler, görevleri arasında Yerleşim yeri yüksek derecede Örneğin, gerekli zamanlama grupları kullanmak, aynı işlemci düğümünde yürütülmesini yararlanır.Tam tersine, bir dizi görevi için ayrılan işlemci kaynakları sınırlamak istediğinizde uygulamanız belirli kalite gereksinimlerini, varsa Zamanlayıcı örnekleri kullanın.Zamanlayıcı örnekleri hakkında daha fazla bilgi için bkz: Zamanlayıcı örnekleri.

İpucuİpucu

Bu nedenle, uygulamanızı oluşturmak için gerekli değildir ve varsayılan Zamanlayıcı eşzamanlılık çalışma zamanı sağlar.Görev Zamanlayıcı, uygulamalarınızın performansını hassas yardımcı olur çünkü ile başlatmanızı öneririz Paralel Desenler kitaplığının (ppl) veya Zaman uyumsuz aracıları kitaplığı eşzamanlılık çalýþma yeniyseniz.

Her Scheduler nesnesinin zamanlama her düğüm için varsayılan bir zamanlama grubu vardır.A düğümü planlama temel sistem topolojiye eşleştirir.Çalýþma zamaný her işlemci paketinin bir zamanlama düğümü ya da Non-Uniform bellek mimarisi (numa) düğümü oluşturur, hangi büyük sayıdır.Size açıkça görev zamanlama grubuyla ilişkilendirmek değil, Zamanlayıcı görev eklemek için hangi grubu seçer.

SchedulingProtocol Zamanlayıcı İlkesi, Zamanlayıcı yürütür görevleri her Zamanlama grubunun sırasını etkiler.Zaman SchedulingProtocol ayarlamak EnhanceScheduleGroupLocality (varsayılan değer olan), geçerli görev tamamlandıktan veya cooperatively üretir, üzerinde çalıştığı zamanlama grubundan sonraki görev Görev Zamanlayıcısı'nı seçer.Sonraki kullanılabilir grubuna gitmeden önce geçerli Zamanlama grubunun iş için Görev Zamanlayıcı'yı arar.Tam tersine, SchedulingProtocol ayarlamak EnhanceForwardProgress, her görev tamamlandıktan veya verir sonra Zamanlayıcı sonraki zamanlama grubuna taşır.Bu ilkeler karşılaştıran bir örnek için bkz: Nasıl yapılır: yürütme sırasını belirlemek için zamanlama grupları kullanma.

Çalışma zamanı kullanır concurrency::ScheduleGroup zamanlama grupları temsil eden sınıf.Oluşturmak için bir ScheduleGroup nesne, çağrı concurrency::CurrentScheduler::CreateScheduleGroup veya concurrency::Scheduler::CreateScheduleGroup yöntemi.Çalışma zamanı, yaşam süresini denetlemek için başvuru sayımı mekanizması kullanır ScheduleGroup ile gibi nesneleri Scheduler nesneler.Oluşturduğunuzda, bir ScheduleGroup object runtime başvuru bir sayaç ayarlar.Concurrency::ScheduleGroup::Reference yöntemi bir başvuru sayacı artırır.Concurrency::ScheduleGroup::Release yöntemi azaltır birer birer referans sayacı.

Eşzamanlılık çalışma zamanında birçok nesne bir zamanlama grubuyla ilişkilendirmek sağlar.Örneğin, concurrency::agent sınıfı ve ileti sınıfları gibi concurrency::unbounded_buffer, concurrency::join, ve concurrency::timer, ele aþýrý yüklenmiþ kurucu sürümleri sağlar bir ScheduleGroup nesnesi.Çalışma zamanı kullanır Scheduler bu ile ilişkili bir nesne ScheduleGroup görevi zamanlamak için nesne.

Ayrıca concurrency::ScheduleGroup::ScheduleTask basit bir görev zamanlamak için yöntem.Basit görevler hakkında daha fazla bilgi için bkz: Basit görevleri.

Örnek

Kullanımlar görev yürütme sırasını denetlemek için Grup zamanlama konusunda bir örnek için bkz: Nasıl yapılır: yürütme sırasını belirlemek için zamanlama grupları kullanma.

Ayrıca bkz.

Görevler

Nasıl yapılır: yürütme sırasını belirlemek için zamanlama grupları kullanma

Kavramlar

Görev Zamanlayıcı'yı (eşzamanlılık çalışma zamanı)

Zamanlayıcı örnekleri