concurrency Ad Alanı
Ad Concurrency
alanı, C++ için eşzamanlı programlama çerçevesi olan Eşzamanlılık Çalışma Zamanı'na erişmenizi sağlayan sınıflar ve işlevler sağlar. Daha fazla bilgi için bkz . Eşzamanlılık Çalışma Zamanı.
Sözdizimi
namespace concurrency;
Üyeler
Tür tanımları
Veri Akışı Adı | Açıklama |
---|---|
runtime_object_identity |
Her ileti örneği, kopyalanıp mesajlaşma bileşenleri arasında geçirilirken onu izleyen bir kimliğe sahiptir. Bu, ileti nesnesinin adresi olamaz. |
task_status |
Görevin terminal durumunu temsil eden bir tür. Geçerli değerler: completed ve canceled . |
TaskProc |
Görev için olarak void (__cdecl * TaskProc)(void *) tanımlanan temel soyutlama. bir TaskProc görevin gövdesini çağırmak için çağrılır. |
TaskProc_t |
Görev için olarak void (__cdecl * TaskProc_t)(void *) tanımlanan temel soyutlama. bir TaskProc görevin gövdesini çağırmak için çağrılır. |
Sınıflar
Veri Akışı Adı | Açıklama |
---|---|
affinity_partitioner Sınıfı | affinity_partitioner sınıfı sınıfına static_partitioner benzer, ancak alt aralıkları çalışan iş parçacıklarıyla eşlemeyi seçerek önbellek benzeşimini geliştirir. Bir döngü aynı veri kümesi üzerinde yeniden yürütülür ve veriler önbelleğe sığdığında performansı önemli ölçüde iyileştirebilir. Veri yerelliğinden yararlanmak için aynı affinity_partitioner nesnenin belirli bir veri kümesi üzerinde yürütülen paralel döngünün sonraki yinelemeleriyle kullanılması gerektiğini unutmayın. |
agent Sınıfı | Tüm bağımsız aracılar için temel sınıf olarak kullanılması amaçlanan bir sınıf. Durumu diğer aracılardan gizlemek ve ileti geçirmeyi kullanarak etkileşime geçmek için kullanılır. |
auto_partitioner Sınıfı | sınıfı auto_partitioner varsayılan yöntemini parallel_for parallel_for_each temsil eder ve parallel_transform yineledikleri aralığı bölümlendirmek için kullanır. Bu bölümleme yöntemi, yük dengeleme ve yinelemeli iptal için aralık çalmayı kullanır. |
bad_target Sınıfı | Bu sınıf, ileti bloğuna gerçekleştirilmekte olan işlem için geçersiz olan bir hedefe işaretçi verildiğinde oluşan bir özel durumu açıklar. |
call Sınıfı | Mesajlaşma call bloğu, ileti alırken belirtilen işlevi çağıran çok kaynaklı, sıralı target_block bir blokdur. |
cancellation_token Sınıfı | sınıfı, cancellation_token iptal etmek için bazı işlemlerin istenip istenmediğini belirleme özelliğini temsil eder. Belirli bir belirteç, örtük iptal sağlamak için , task_group structured_task_group veya task ile ilişkilendirilebilir. ayrıca iptal için yoklanabilir veya ilişkili cancellation_token_source iptal edilirse ve ne zaman için bir geri çağırma kayıtlı olabilir. |
cancellation_token_registration Sınıfı | sınıfı, cancellation_token_registration öğesinden bir cancellation_token geri çağırma bildirimini temsil eder. register üzerindeki yöntemi cancellation_token iptal gerçekleştiğinde bildirimini almak için kullanıldığında, cancellation_token_registration çağıranın artık yöntemi kullanılarak belirli bir geri çağırma isteğinde bulunabilmesi için bir nesne geri çağırmanın tanıtıcısı deregister olarak döndürülür. |
cancellation_token_source Sınıfı | sınıfı, cancellation_token_source iptal edilebilir bir işlemi iptal etme özelliğini temsil eder. |
choice Sınıfı | choice Mesajlaşma bloğu, bir dizi kaynakla denetim akışı etkileşimini temsil eden çok kaynaklı, tek hedefli bir bloktır. Seçim bloğu, birden çok kaynaktan herhangi birinin ileti üretmesini bekler ve iletiyi oluşturan kaynağın dizinini yayacaktır. |
combinable Sınıfı | combinable<T> Nesnesi, paralel algoritmalar sırasında kilitsiz iş parçacığı yerel alt hesaplamaları gerçekleştirmek için verilerin iş parçacığı özel kopyalarını sağlamaya yöneliktir. Paralel işlemin sonunda, iş parçacığı-özel alt hesaplamaları son bir sonuçla birleştirilebilir. Bu sınıf paylaşılan değişken yerine kullanılabilir ve paylaşılan değişkende çok fazla çekişme olması durumunda performans artışına neden olabilir. |
concurrent_priority_queue Sınıfı | concurrent_priority_queue sınıfı, birden çok iş parçacığının öğeleri eşzamanlı olarak göndermesine ve açmasına olanak tanıyan bir kapsayıcıdır. Öğeler, önceliğin şablon bağımsız değişkeni olarak sağlanan bir functor tarafından belirlendiği öncelik sırasına göre gösterilir. |
concurrent_queue Sınıfı | concurrent_queue sınıfı, öğelerine ilk giriş, ilk çıkış erişimi sağlayan bir dizi kapsayıcı sınıfıdır. ve try_pop gibi push eşzamanlılık açısından güvenli sınırlı bir dizi işlemi etkinleştirir. |
concurrent_unordered_map Sınıfı | concurrent_unordered_map sınıfı, türünde std::pair<const K, _Element_type> öğelerin değişen uzunluklu dizisini denetleen eşzamanlılık açısından güvenli bir kapsayıcıdır. Sıra eşzamanlılık açısından güvenli ekleme, öğe erişimi, yineleyici erişimi ve yineleyici geçiş işlemlerini etkinleştiren bir şekilde temsil edilir. |
concurrent_unordered_multimap Sınıfı | concurrent_unordered_multimap sınıfı, türünde std::pair<const K, _Element_type> öğelerin değişen uzunluklu dizisini denetleen eşzamanlılık açısından güvenli bir kapsayıcıdır. Sıra eşzamanlılık açısından güvenli ekleme, öğe erişimi, yineleyici erişimi ve yineleyici geçişi işlemlerini etkinleştiren bir şekilde temsil edilir. |
concurrent_unordered_multiset Sınıfı | concurrent_unordered_multiset sınıfı, K türündeki öğelerin değişen uzunluklu dizisini denetleen eşzamanlılık açısından güvenli bir kapsayıcıdır. Sıra eşzamanlılık açısından güvenli ekleme, öğe erişimi, yineleyici erişimi ve yineleyici geçişi işlemlerini etkinleştiren bir şekilde temsil edilir. |
concurrent_unordered_set Sınıfı | concurrent_unordered_set sınıfı, K türündeki öğelerin değişen uzunluklu dizisini denetleen eşzamanlılık açısından güvenli bir kapsayıcıdır. Sıra eşzamanlılık açısından güvenli ekleme, öğe erişimi, yineleyici erişimi ve yineleyici geçişi işlemlerini etkinleştiren bir şekilde temsil edilir. |
concurrent_vector Sınıfı | concurrent_vector sınıfı, herhangi bir öğeye rastgele erişim sağlayan bir dizi kapsayıcı sınıfıdır. Eşzamanlılık açısından güvenli ekleme, öğe erişimi, yineleyici erişimi ve yineleyici geçiş işlemlerini etkinleştirir. |
Bağlam Sınıfı | Yürütme bağlamı için bir soyutlama temsil eder. |
context_self_unblock Sınıfı | Bu sınıf, bir nesnenin yöntemi aynı bağlamdan Unblock çağrıldığında oluşan bir Context özel durumu açıklar. Bu, belirli bir bağlam tarafından engeli kaldırma girişimini gösterir. |
context_unblock_unbalanced Sınıfı | Bu sınıf, bir nesnenin Block ve Unblock yöntemlerine yapılan çağrılar düzgün eşlenmediğinde oluşan bir Context özel durumu açıklar. |
critical_section Sınıfı | Eşzamanlılık Çalışma Zamanı'nın açıkça farkında olan, yeniden girilmeyen bir mutex. |
CurrentScheduler Sınıfı | Çağıran bağlamla ilişkili geçerli zamanlayıcı için bir soyutlamayı temsil eder. |
default_scheduler_exists Sınıfı | Bu sınıf, işlem içinde varsayılan bir zamanlayıcı zaten mevcut olduğunda Scheduler::SetDefaultSchedulerPolicy yöntemi çağrıldığında oluşan bir özel durumu açıklar. |
event Sınıfı | Eşzamanlılık Çalışma Zamanı'nın açıkça farkında olan el ile sıfırlama olayı. |
improper_lock Sınıfı | Bu sınıf, bir kilit düzgün alınmadığında oluşan bir özel durumu açıklar. |
improper_scheduler_attach Sınıfı | Bu sınıf, geçerli bağlama zaten eklenmiş bir nesnede yöntemi çağrıldığında Attach oluşan bir Scheduler özel durumu açıklar. |
improper_scheduler_detach Sınıfı | Bu sınıf, yöntemi bir nesnenin CurrentScheduler::Detach yöntemi kullanılarak Attach herhangi bir zamanlayıcıya eklenmemiş bir bağlamda çağrıldığında oluşan bir Scheduler özel durumu açıklar. |
improper_scheduler_reference Sınıfı | Bu sınıf, yöntem kapatılan bir Scheduler nesnede çağrıldığındaReference , bu zamanlayıcının parçası olmayan bir bağlamdan oluşan bir özel durumu açıklar. |
invalid_link_target Sınıfı | Bu sınıf, bir mesajlaşma bloğunun yöntemi çağrıldığında link_target ve mesajlaşma bloğu hedefe bağlanamadığında oluşan bir özel durumu açıklar. Bu, mesajlaşma bloğunun izin verilen bağlantı sayısını aşmanın veya belirli bir hedefi aynı kaynağa iki kez bağlamayı denemenin sonucu olabilir. |
invalid_multiple_scheduling Sınıfı | Bu sınıf, veya task_handle yöntemine bir araya gelen bir çağrı wait run_and_wait olmadan veya structured_task_group nesnesinin run yöntemi kullanılarak bir task_group nesne birden çok kez zamanlandığında oluşan bir özel durumu açıklar. |
invalid_operation Sınıfı | Bu sınıf, Eşzamanlılık Çalışma Zamanı tarafından oluşturulmuş başka bir özel durum türü tarafından daha doğru şekilde açıklanmayan geçersiz bir işlem gerçekleştirildiğinde oluşan bir özel durumu açıklar. |
invalid_oversubscribe_operation Sınıfı | Bu sınıf, parametresi olarak ayarlanmış yöntemine Context::Oversubscribe _BeginOversubscription önceden çağrılmadan _BeginOversubscription Context::Oversubscribe parametresi olarak ayarlandığında false true oluşan bir özel durumu açıklar. |
invalid_scheduler_policy_key Sınıfı | Bu sınıf, nesne oluşturucuya geçersiz veya bilinmeyen bir anahtar geçirildiğinde SchedulerPolicy veya SetPolicyValue bir nesnenin SchedulerPolicy yöntemi yöntemi gibi SetConcurrencyLimits diğer araçlar kullanılarak değiştirilmesi gereken bir anahtar geçirildiğinde oluşan bir özel durumu açıklar. |
invalid_scheduler_policy_thread_specification Sınıfı | Bu sınıf, bir nesnenin eşzamanlılık sınırlarını SchedulerPolicy , anahtarın değeri anahtarın değerinden MinConcurrency küçük MaxConcurrency olacak şekilde ayarlama girişiminde bulunulduğunda oluşan bir özel durumu açıklar. |
invalid_scheduler_policy_value Sınıfı | Bu sınıf, bir nesnenin SchedulerPolicy ilke anahtarı bu anahtar için geçersiz bir değere ayarlandığında oluşan bir özel durumu açıklar. |
ISource Sınıfı | ISource sınıfı, tüm kaynak bloklar için arabirimdir. Kaynak bloklar iletileri bloklara yayılım ITarget . |
ITarget Sınıfı | ITarget sınıfı, tüm hedef bloklar için arabirimdir. Hedef bloklar, bloklar tarafından ISource kendilerine sunulan iletileri kullanır. |
join Sınıfı | Mesajlaşma join bloğu, tek hedefli, çok kaynaklı, her bir kaynaktan gelen türde T iletileri bir araya getiren sıralı propagator_block bir bloktır. |
location Sınıfı | Donanımdaki fiziksel konumun soyutlaması. |
message Sınıfı | İleti blokları arasında iletilen veri yükünü içeren temel ileti zarfı. |
message_not_found Sınıfı | Bu sınıf, bir ileti bloğu istenen iletiyi bulamadığında oluşan bir özel durumu açıklar. |
message_processor Sınıfı | message_processor sınıfı, nesnelerin işlenmesi için soyut temel sınıftırmessage . İletilerin sıralanması garanti değildir. |
missing_wait Sınıfı | Bu sınıf, nesnenin yok edicisi yürütülürken bir veya structured_task_group nesnesine task_group hala zamanlanmış görevler olduğunda oluşan bir özel durumu açıklar. Bir özel durumun sonucu olarak bir yığının geri alınması nedeniyle yıkıcıya ulaşılırsa bu özel durum hiçbir zaman oluşturulmayacak. |
multi_link_registry Sınıfı | multi_link_registry nesnesi, birden çok kaynak bloğu veya birden çok hedef bloğu yöneten bir network_link_registry nesnesidir. |
multitype_join Sınıfı | multitype_join Mesajlaşma bloğu, her kaynaktan farklı türlerdeki iletileri bir araya getiren ve hedeflerine birleştirilmiş iletilerin bir demetini sunan çok kaynaklı, tek hedefli bir mesajlaşma bloğudur. |
nested_scheduler_missing_detach Sınıfı | Bu sınıf, Eşzamanlılık Çalışma Zamanı, nesnesinin yöntemini Scheduler kullanarak Attach ikinci bir zamanlayıcıya bağlı bir bağlamda yöntemini çağırmayı CurrentScheduler::Detach ihmal ettiğinizi algıladığında oluşan bir özel durumu açıklar. |
network_link_registry Sınıfı | Soyut network_link_registry temel sınıfı, kaynak ve hedef bloklar arasındaki bağlantıları yönetir. |
operation_timed_out Sınıfı | Bu sınıf, bir işlem zaman aşımına uğradıklarında oluşan bir özel durumu açıklar. |
ordered_message_processor Sınıfı | , ordered_message_processor ileti bloklarının iletileri alındıkları sırayla işlemesine olanak tanıyan bir message_processor öğedir. |
overwrite_buffer Sınıfı | Mesajlaşma overwrite_buffer bloğu, tek seferde tek bir iletiyi depolayabilen çok hedefli, çok kaynaklı, sıralı propagator_block bir bloktır. Yeni iletiler daha önce tutulan iletilerin üzerine yazılır. |
progress_reporter Sınıfı | progress reporter sınıfı, belirli bir türdeki ilerleme durumu bildirimlerini raporlamaya olanak tanır. Her progress_reporter nesnesi belirli bir zaman uyumsuz eyleme veya işleme bağlıdır. |
propagator_block Sınıfı | propagator_block sınıfı, hem kaynak hem de hedef olan ileti blokları için soyut bir temel sınıftır. Hem ve source_block target_block sınıflarının işlevselliğini birleştirir. |
reader_writer_lock Sınıfı | Yalnızca yerel olarak dönen yazıcı tercihi kuyruk tabanlı okuyucu yazıcı kilidi. Kilit, yazarlara ilk girişte (FIFO) erişim verir ve okuyucuları yazarların sürekli yükü altında açlıktan kurtarır. |
ScheduleGroup Sınıfı | Zamanlama grubu için soyutlamayı temsil eder. Zamanlama grupları, başka bir gruba geçmeden önce aynı gruptaki başka bir görevi yürüterek veya uzamsal olarak aynı numa düğümünde veya fiziksel yuvada aynı grup içinde birden çok öğe yürüterek zamanlanmış olarak birbirine yakın zamanlanmanın avantajlarından yararlanan ilgili bir çalışma kümesini düzenler. |
Zamanlayıcı Sınıfı | Eşzamanlılık Çalışma Zamanı zamanlayıcısı için soyutlamayı temsil eder. |
scheduler_not_attached Sınıfı | Bu sınıf, geçerli bağlama bir zamanlayıcının eklenmesini gerektiren ve olmayan bir işlem gerçekleştirildiğinde oluşan bir özel durumu açıklar. |
scheduler_resource_allocation_error Sınıfı | Bu sınıf, Eşzamanlılık Çalışma Zamanı'nda kritik bir kaynak alınamaması nedeniyle oluşan bir özel durumu açıklar. |
scheduler_worker_creation_error Sınıfı | Bu sınıf, Eşzamanlılık Çalışma Zamanı'nda çalışan yürütme bağlamı oluşturulamaması nedeniyle oluşan bir özel durumu açıklar. |
SchedulerPolicy Sınıfı | SchedulerPolicy sınıfı, bir zamanlayıcı örneğinin davranışını denetleen her ilke öğesi için bir anahtar/değer çifti kümesi içerir. |
simple_partitioner Sınıfı | sınıfı, simple_partitioner tarafından parallel_for yinelenmiş aralığın statik bölümlemini temsil eder. Bölümleyici, aralığı öbeklere böler; böylece her öbek en az öbek boyutu tarafından belirtilen yineleme sayısına sahip olur. |
single_assignment Sınıfı | Mesajlaşma single_assignment bloğu çok hedefli, çok kaynaklı, tek bir yazma bir kez message depolayabilen sıralı propagator_block bir blok. |
single_link_registry Sınıfı | single_link_registry nesnesi, yalnızca tek bir kaynağı veya hedef bloğu yöneten bir nesnesidirnetwork_link_registry . |
source_block Sınıfı | source_block sınıfı, yalnızca kaynak blokları için soyut bir temel sınıftır. sınıfı, temel bağlantı yönetimi işlevlerinin yanı sıra yaygın hata denetimleri de sağlar. |
source_link_manager Sınıfı | nesnesi, source_link_manager bloklara yönelik mesajlaşma bloğu ağ bağlantılarını ISource yönetir. |
static_partitioner Sınıfı | sınıfı, static_partitioner tarafından parallel_for yinelenmiş aralığın statik bölümlemini temsil eder. Bölümleyici, aralığı temel zamanlayıcı için kullanılabilir çalışan olduğu kadar öbeklere böler. |
structured_task_group Sınıfı | sınıfı, structured_task_group yüksek oranda yapılandırılmış bir paralel çalışma koleksiyonunu temsil eder. Tek tek paralel görevleri kullanarak task_handle bir structured_task_group nesneye kuyruğa alabilir ve tamamlanmasını bekleyebilir veya yürütmeyi tamamlamadan önce görev grubunu iptal edebilirsiniz; bu da yürütmeye başlamamış görevleri durdurur. |
target_block Sınıfı | target_block sınıfı, temel bağlantı yönetimi işlevselliği ve yalnızca hedef bloklar için hata denetimi sağlayan soyut bir temel sınıftır. |
task Sınıfı (Eşzamanlılık Çalışma Zamanı) | Paralel Desen kitaplığı (PPL) task sınıfı. task Nesne, Eşzamanlılık Çalışma Zamanı'nda paralel algoritmalar tarafından üretilen diğer görevler ve paralel çalışmalarla eşzamanlı olarak ve zaman uyumsuz olarak yürütülebilen çalışmayı temsil eder. Başarıyla tamamlandığında türünden _ResultType bir sonuç üretir. Tür task<void> görevleri sonuç üretmez. Bir görev diğer görevlerden bağımsız olarak beklenebilir ve iptal edilebilir. Ayrıca continuations( ve join(then ) ve choice(when_all when_any ) desenleri kullanılarak diğer görevlerle de oluşturulabilir. |
task_canceled Sınıfı | Bu sınıf, geçerli görevi iptal etmeye zorlamak için PPL görev katmanı tarafından oluşan bir özel durumu açıklar. Ayrıca, iptal edilen bir görev için görevdeki yöntemi tarafından get() oluşturulur. |
task_completion_event Sınıfı | sınıfı, task_completion_event bir koşul karşılanana kadar görevin yürütülmesini geciktirmenize veya bir dış olaya yanıt olarak bir görev başlatmanıza olanak tanır. |
task_continuation_context Sınıfı | sınıfı, task_continuation_context devamın yürütülmesini istediğiniz yeri belirtmenize olanak tanır. Bu sınıfı yalnızca bir UWP uygulamasından kullanmak yararlıdır. Windows Çalışma Zamanı olmayan uygulamalar için görev devamlılığı yürütme bağlamı çalışma zamanı tarafından belirlenir ve yapılandırılamaz. |
task_group Sınıfı | sınıfı, task_group beklenebilen veya iptal edilebilen paralel çalışma koleksiyonunu temsil eder. |
task_handle Sınıfı | sınıfı tek task_handle bir paralel iş öğesini temsil eder. Bir iş parçasını yürütmek için gereken yönergeleri ve verileri kapsüller. |
task_options Sınıfı (Eşzamanlılık Çalışma Zamanı) | Görev oluşturmak için izin verilen seçenekleri temsil eder |
timer Sınıfı | Mesajlaşma timer bloğu, belirtilen süre geçtikten sonra veya belirli aralıklarla hedefine ileti gönderebilen tek source_block hedefli bir hedeftir. |
transformer Sınıfı | Mesajlaşma transformer bloğu, tek türde iletileri kabul edebilen ve farklı türde sınırsız sayıda iletiyi depolayabilen tek hedefli, çok kaynaklı propagator_block bir bloktır. |
unbounded_buffer Sınıfı | Mesajlaşma unbounded_buffer bloğu, çok hedefli, çok kaynaklı, sıralı propagator_block , ilişkisiz sayıda ileti depolayabilen bir blok. |
unsupported_os Sınıfı | Bu sınıf, desteklenmeyen bir işletim sistemi kullanıldığında oluşan bir özel durumu açıklar. |
Yapılar
Veri Akışı Adı | Açıklama |
---|---|
DispatchState Yapısı | Yapı DispatchState , yöntemine durum aktarmak için IExecutionContext::Dispatch kullanılır. Yöntemin bir IExecutionContext arabirimde çağrıldığı Dispatch durumları açıklar. |
IExecutionContext Yapısı | Belirli bir sanal işlemci üzerinde çalışabilen ve ortak bir şekilde bağlam değiştirilebilen bir yürütme bağlamı arabirimi. |
IExecutionResource Yapısı | Donanım iş parçacığı için soyutlama. |
IResourceManager Yapısı | Eşzamanlılık Çalışma Zamanı'nın Resource Manager arabirimi. Bu, zamanlayıcıların Resource Manager ile iletişim kurdığı arabirimdir. |
IScheduler Yapısı | İş zamanlayıcısının soyutlamasına yönelik arabirim. Eşzamanlılık Çalışma Zamanı'nın Resource Manager'ı, iş zamanlayıcılarıyla iletişim kurmak için bu arabirimi kullanır. |
ISchedulerProxy Yapısı | Zamanlayıcıların kaynak ayırma anlaşması yapmak için Eşzamanlılık Çalışma Zamanının Resource Manager'ı ile iletişim kuracakları arabirim. |
IThreadProxy Yapısı | Yürütme iş parçacığı için soyutlama. Oluşturduğunuz zamanlayıcının SchedulerType ilke anahtarına bağlı olarak, Resource Manager size normal bir Win32 iş parçacığı veya kullanıcı modu zamanlanabilir (UMS) iş parçacığı tarafından yedeklenen bir iş parçacığı ara sunucusu verir. UMS iş parçacıkları, Windows 7 ve üzeri sürüme sahip 64 bit işletim sistemlerinde desteklenir. |
ITopologyExecutionResource Yapısı | Resource Manager tarafından tanımlanan yürütme kaynağının arabirimi. |
ITopologyNode Yapısı | Resource Manager tarafından tanımlanan bir topoloji düğümü arabirimi. Düğüm bir veya daha fazla yürütme kaynağı içerir. |
IUMSCompletionList Yapısı | UMS tamamlama listesini temsil eder. BIR UMS iş parçacığı engellediğinde, özgün iş parçacığı engellenirken temel alınan sanal işlemci kökünde nelerin zamanlandığına karar vermek için zamanlayıcının belirlenen zamanlama bağlamı gönderilir. Özgün iş parçacığı engelini kaldırdığında, işletim sistemi bunu bu arabirim aracılığıyla erişilebilen tamamlanma listesine kuyruğa alır. Zamanlayıcı, belirlenen zamanlama bağlamında veya iş için arama yapan başka bir yerde tamamlanma listesini sorgulayabilir. |
IUMSScheduler Yapısı | Eşzamanlılık Çalışma Zamanı Resource Manager'ının kullanıcı modu zamanlanabilir (UMS) iş parçacıklarını teslim etmelerini isteyen bir iş zamanlayıcısının soyutlamasına yönelik arabirim. Resource Manager, UMS iş parçacığı zamanlayıcılarıyla iletişim kurmak için bu arabirimi kullanır. Arabirim IUMSScheduler , arabirimden devralır IScheduler . |
IUMSThreadProxy Yapısı | Yürütme iş parçacığı için soyutlama. Zamanlayıcınıza kullanıcı modu zamanlanabilir (UMS) iş parçacıkları verilmesini istiyorsanız, zamanlayıcı ilke öğesinin SchedulerKind değerini olarak UmsThreadDefault ayarlayın ve arabirimini IUMSScheduler uygulayın. UMS iş parçacıkları yalnızca Windows 7 ve üzeri sürüme sahip 64 bit işletim sistemlerinde desteklenir. |
IUMSUnblockNotification Yapısı | Resource Manager'dan bir iş parçacığı ara sunucusunun zamanlayıcının belirlenmiş zamanlama bağlamını engelleyip tetiklediği, engelinin kaldırıldığı ve zamanlanmaya hazır olduğu bildirimini temsil eder. İş parçacığı ara sunucusunun yönteminden GetContext döndürülen ilişkili yürütme bağlamı yeniden zamanlandığında bu arabirim geçersiz olur. |
IVirtualProcessorRoot Yapısı | üzerinde bir iş parçacığı ara sunucusunun yürütebileceği bir donanım iş parçacığı için soyutlama. |
scheduler_interface Yapısı | Zamanlayıcı Arabirimi |
scheduler_ptr Yapısı (Eşzamanlılık Çalışma Zamanı) | Zamanlayıcı işaretçisini temsil eder. Bu sınıf, shared_ptr kullanarak paylaşılan bir yaşam süresi belirtimine veya ham işaretçi kullanarak yalnızca düz başvuruya izin vermek için vardır. |
Listelemeler
Veri Akışı Adı | Açıklama |
---|---|
agent_status | Bir agent için geçerli durumlar. |
Agents_EventType | Aracılar Kitaplığı tarafından sunulan izleme işlevselliği kullanılarak izlenebilen olay türleri |
ConcRT_EventType | Eşzamanlılık Çalışma Zamanı tarafından sunulan izleme işlevselliği kullanılarak izlenebilen olay türleri. |
Concrt_TraceFlags | Olay türleri için izleme bayrakları |
CriticalRegionType | Bağlamın içinde yer alan kritik bölge türü. |
DynamicProgressFeedbackType | İlke tarafından zamanlayıcı kaynaklarının DynamicProgressFeedback zamanlayıcıdan toplanan istatistiksel bilgilere göre yeniden dengelenip dengelenmeyeceğini veya yalnızca arabirimdeki ve yöntemlerine yapılan çağrılar aracılığıyla boşta kalma durumuna geçen ve Deactivate giden sanal işlemcilere IVirtualProcessorRoot göre yeniden dengelenip dengelenmeyeceğini açıklamak için Activate kullanılır. Kullanılabilir zamanlayıcı ilkeleri hakkında daha fazla bilgi için bkz . PolicyElementKey. |
join_type | Mesajlaşma bloğunun join türü. |
message_status | Bir nesnenin message bir bloğa teklifi için geçerli yanıtlar. |
PolicyElementKey | Zamanlayıcı davranışının yönlerini açıklayan ilke anahtarları. Her ilke öğesi bir anahtar-değer çifti tarafından açıklanır. Zamanlayıcı ilkeleri ve zamanlayıcılar üzerindeki etkileri hakkında daha fazla bilgi için bkz . Görev Zamanlayıcı. |
SchedulerType | İlke tarafından zamanlayıcının SchedulerKind temel yürütme bağlamları için kullanması gereken iş parçacıklarının türünü açıklamak için kullanılır. Kullanılabilir zamanlayıcı ilkeleri hakkında daha fazla bilgi için bkz . PolicyElementKey. |
SchedulingProtocolType | İlke SchedulingProtocol tarafından zamanlayıcı için hangi zamanlama algoritmasının kullanılacağını açıklamak için kullanılır. Kullanılabilir zamanlayıcı ilkeleri hakkında daha fazla bilgi için bkz . PolicyElementKey. |
SwitchingProxyState | bir iş parçacığı ara sunucusunun içinde olduğu durumu, farklı bir iş parçacığı ara sunucusuna işbirlikçi bağlam anahtarı yürütürken belirtmek için kullanılır. |
task_group_status | Bir task_group veya structured_task_group nesnesinin yürütme durumunu açıklar. Bu tür bir değer, bir görev grubuna zamanlanmış görevlerin tamamlanmasını bekleyen çok sayıda yöntem tarafından döndürülür. |
WinRTInitializationType | İlke WinRTInitialization tarafından, Windows Çalışma Zamanı Windows 8 veya üzeri sürüme sahip işletim sistemlerinde çalışan bir uygulama için zamanlayıcı iş parçacıklarında başlatılıp başlatılmayacağını ve nasıl başlatılacağını açıklamak için kullanılır. Kullanılabilir zamanlayıcı ilkeleri hakkında daha fazla bilgi için bkz . PolicyElementKey. |
İşlevler
Veri Akışı Adı | Açıklama |
---|---|
Alloc İşlevi | Eşzamanlılık Çalışma Zamanı Önbelleğe Alma Alt Bulucusundan belirtilen boyutta bir bellek bloğu ayırır. |
asend İşlevi | Aşırı yüklendi. Verileri hedef bloğa yaymak için bir görev zamanlayan zaman uyumsuz gönderme işlemi. |
cancel_current_task İşlevi | Şu anda yürütülen görevi iptal eder. Bu işlev, görevin yürütülmesini durdurmak ve duruma girmesine canceled neden olmak için görevin gövdesinden çağrılabilir.gövdesinde değilseniz bu işlevi çağırmak desteklenen bir task senaryo değildir. Bunun yapılması, uygulamanızda kilitlenme veya yanıt vermeme gibi tanımsız davranışlara neden olur. |
create_async İşlevi | Kullanıcı tarafından sağlanan lambda veya işlev nesnesini temel alan Windows Çalışma Zamanı zaman uyumsuz bir yapı oluşturur. dönüş türü create_async IAsyncAction^ , , IAsyncActionWithProgress<TProgress>^ , IAsyncOperation<TResult>^ veya IAsyncOperationWithProgress<TResult, TProgress>^ yöntemine geçirilen lambda imzasını temel alır. |
create_task İşlevi | Aşırı yüklendi. PPL görev nesnesi oluşturur. create_task bir görev oluşturucu kullanmış olabileceğiniz her yerde kullanılabilir. Görev oluştururken anahtar sözcüğün kullanılmasına izin verdiğinden auto , çoğunlukla kolaylık sağlamak için sağlanır. |
CreateResourceManager İşlevi | Eşzamanlılık Çalışma Zamanı'nın Resource Manager'ının tekil örneğini temsil eden bir arabirim döndürür. Resource Manager, birbirleriyle işbirliği yapmak isteyen zamanlayıcılara kaynak atamakla sorumludur. |
DisableTracing İşlevi | Eşzamanlılık Çalışma Zamanı'nda izlemeyi devre dışı bırakır. ETW izlemesi varsayılan olarak kaydı kaldırıldığından bu işlev kullanım dışıdır. |
EnableTracing İşlevi | Eşzamanlılık Çalışma Zamanı'nda izlemeyi etkinleştirir. ETW izleme artık varsayılan olarak açık olduğundan bu işlev kullanım dışıdır. |
Free İşlevi | Yöntemi tarafından Alloc önceden ayrılmış bir bellek bloğunu Eşzamanlılık Çalışma Zamanı Önbelleğe Alma Alt Bulucus'a serbest bırakır. |
get_ambient_scheduler İşlevi (Eşzamanlılık Çalışma Zamanı) | |
GetExecutionContextId İşlevi | Arabirimi uygulayan IExecutionContext bir yürütme bağlamı için atanabilen benzersiz bir tanımlayıcı döndürür. |
GetOSVersion İşlevi | İşletim sistemi sürümünü döndürür. |
GetProcessorCount İşlevi | Temel alınan sistemdeki donanım iş parçacığı sayısını döndürür. |
GetProcessorNodeCount İşlevi | Temel alınan sistemdeki NUMA düğümlerinin veya işlemci paketlerinin sayısını döndürür. |
GetSchedulerId İşlevi | Arabirimi uygulayan IScheduler bir zamanlayıcıya atanabilen benzersiz bir tanımlayıcı döndürür. |
interruption_point İşlevi | İptal için bir kesinti noktası oluşturur. Bu işlevin çağrıldığı bağlamda bir iptal işlemi devam ederse, bu işlem şu anda yürütülen paralel çalışmanın yürütülmesini durduran bir iç özel durum oluşturur. İptal işlemi devam etmiyorsa işlev hiçbir şey yapmaz. |
is_current_task_group_canceling İşlevi | Geçerli bağlamda satır içi olarak yürütülmekte olan görev grubunun etkin bir iptalin ortasında olup olmadığını (veya kısa süre içinde olacağını) belirten bir gösterge döndürür. Geçerli bağlamda şu anda satır içinde yürütülen bir görev grubu yoksa, false döndürüleceğini unutmayın. |
make_choice İşlevi | Aşırı yüklendi. choice İsteğe bağlı Scheduler veya iki veya ScheduleGroup daha fazla giriş kaynağından bir mesajlaşma bloğu oluşturur. |
make_greedy_join İşlevi | Aşırı yüklendi. greedy multitype_join İsteğe bağlı Scheduler veya iki veya ScheduleGroup daha fazla giriş kaynağından bir mesajlaşma bloğu oluşturur. |
make_join İşlevi | Aşırı yüklendi. non_greedy multitype_join İsteğe bağlı Scheduler veya iki veya ScheduleGroup daha fazla giriş kaynağından bir mesajlaşma bloğu oluşturur. |
make_task İşlevi | Nesne oluşturmak için bir task_handle fabrika yöntemi. |
parallel_buffered_sort İşlevi | Aşırı yüklendi. Belirtilen aralıktaki öğeleri azalan olmayan bir düzende veya ikili koşul tarafından belirtilen sıralama ölçütüne göre paralel olarak düzenler. Bu işlev, ek alana ihtiyaç duyması O(n) dışında karşılaştırma tabanlı, kararsız, yerinde sıralamaya benzer std::sort ve sıralanan öğeler için varsayılan başlatma gerektirir. |
parallel_for İşlevi | Aşırı yüklendi. parallel_for bir dizi dizin üzerinde yinelenir ve her yinelemede paralel olarak kullanıcı tarafından sağlanan bir işlevi yürütür. |
parallel_for_each İşlevi | Aşırı yüklendi. parallel_for_each bir aralıktaki her öğeye paralel olarak belirtilen bir işlevi uygular. Öğeler üzerinde yinelemenin for_each paralel olarak gerçekleştirilmesi ve yineleme sırasının belirtilmemiş olması dışında ad alanındaki işleve std benzer. bağımsız değişkeni_Func , parametrenin T yinelenen kapsayıcının öğe türü olduğu formun operator()(T) işlev çağrısı işlecini desteklemelidir. |
parallel_invoke İşlevi | Aşırı yüklendi. Parametre olarak sağlanan işlev nesnelerini paralel olarak yürütür ve yürütmeyi tamamlayana kadar bloklar. Her işlev nesnesi bir lambda ifadesi, işlev işaretçisi veya imzalı void operator()() işlev çağrısı işlecini destekleyen herhangi bir nesne olabilir. |
parallel_radixsort İşlevi | Aşırı yüklendi. Bir radix sıralama algoritması kullanarak belirtilen aralıktaki öğeleri azalan olmayan bir düzende düzenler. Bu, öğeleri işaretsiz tamsayı benzeri anahtarlara sıralanabilen bir projeksiyon işlevi gerektiren kararlı bir sıralama işlevidir. Sıralanan öğeler için varsayılan başlatma gereklidir. |
parallel_reduce İşlevi | Aşırı yüklendi. Ardışık kısmi toplamları hesaplayarak belirtilen aralıktaki tüm öğelerin toplamını hesaplar veya paralel olarak sum dışında belirtilen bir ikili işlem kullanılarak benzer şekilde elde edilen ardışık kısmi sonuçların sonucunu hesaplar. parallel_reduce , ikili işlemin ilişkilendirilebilir olmasını gerektirmesi ve ilk değer yerine kimlik değeri gerektirmesi dışında, ile benzerdir std::accumulate . |
parallel_sort İşlevi | Aşırı yüklendi. Belirtilen aralıktaki öğeleri azalan olmayan bir düzende veya ikili koşul tarafından belirtilen sıralama ölçütüne göre paralel olarak düzenler. Bu std::sort işlev, karşılaştırma tabanlı, kararsız ve yerinde sıralama özelliğine benzer. |
parallel_transform İşlevi | Aşırı yüklendi. Belirtilen işlev nesnesini bir kaynak aralıktaki her öğeye veya iki kaynak aralıktaki bir öğe çiftine uygular ve işlev nesnesinin dönüş değerlerini paralel olarak bir hedef aralığa kopyalar. Bu işlev, ile eşanlamlı olarak eşdeğerdir std::transform . |
receive İşlevi | Aşırı yüklendi. Bağlamın tam olarak bir kaynaktan gelen verileri beklemesini ve kabul edilen değerleri filtrelemesini sağlayan genel bir alma uygulaması. |
run_with_cancellation_token İşlevi | Bir işlev nesnesini verilen iptal belirteci bağlamında hemen ve zaman uyumlu olarak yürütür. |
send İşlevi | Aşırı yüklendi. Hedef iletiyi kabul edene veya reddedene kadar bekleyen zaman uyumlu gönderme işlemi. |
set_ambient_scheduler İşlevi (Eşzamanlılık Çalışma Zamanı) | |
set_task_execution_resources İşlevi | Aşırı yüklendi. Eşzamanlılık Çalışma Zamanı iç çalışan iş parçacıkları tarafından kullanılan yürütme kaynaklarını belirtilen benşim kümesiyle kısıtlar. Bu yöntemi yalnızca Resource Manager oluşturulmadan önce veya iki Resource Manager yaşam süresi arasında çağırmak geçerlidir. Resource Manager çağrılırken mevcut olmadığı sürece birden çok kez çağrılabilir. Benzite sınırı ayarlandıktan sonra, yönteme bir sonraki geçerli çağrıya set_task_execution_resources kadar etkin kalır.Sağlanan benzite maskesinin işlem benzdirme maskesinin bir alt kümesi olması gerekmez. Gerekirse işlem benzitesi güncelleştirilir. |
swap İşlevi | İki concurrent_vector nesnenin öğelerini değiştirir. |
task_from_exception İşlevi (Eşzamanlılık Çalışma Zamanı) | |
task_from_result İşlevi (Eşzamanlılık Çalışma Zamanı) | |
Trace_agents_register_name İşlevi | Verilen adı ETW izlemesindeki ileti bloğu veya aracıyla ilişkilendirir. |
try_receive İşlevi | Aşırı yüklendi. Bağlamın tam olarak bir kaynaktan veri aramasına ve kabul edilen değerleri filtrelemesine olanak sağlayan genel bir deneme alma uygulaması. Veriler hazır değilse yöntemi false döndürür. |
wait İşlevi | Geçerli bağlamı belirtilen süre boyunca duraklatır. |
when_all İşlevi | Bağımsız değişken olarak sağlanan tüm görevler başarıyla tamamlandığında başarıyla tamamlanacak bir görev oluşturur. |
when_any İşlevi | Aşırı yüklendi. Bağımsız değişken olarak sağlanan görevlerden herhangi biri başarıyla tamamlandığında başarıyla tamamlanacak bir görev oluşturur. |
İşleçler
Veri Akışı Adı | Açıklama |
---|---|
operator!= | İşlecin concurrent_vector sol tarafındaki nesnenin sağ taraftaki nesneye concurrent_vector eşit olup olmadığını sınar. |
işleç&i | Aşırı yüklendi. Bağımsız değişken olarak sağlanan görevlerin her ikisi de başarıyla tamamlandığında başarıyla tamamlanacak bir görev oluşturur. |
operator|| |
Aşırı yüklendi. Bağımsız değişken olarak sağlanan görevlerden biri başarıyla tamamlandığında başarıyla tamamlanacak bir görev oluşturur. |
operator< | İşlecin concurrent_vector sol tarafındaki nesnenin sağ taraftaki nesneden concurrent_vector küçük olup olmadığını sınar. |
operator<= | İşlecin concurrent_vector sol tarafındaki nesnenin sağ taraftaki nesneden concurrent_vector küçük veya buna eşit olup olmadığını sınar. |
operator== | İşlecin concurrent_vector sol tarafındaki nesnenin sağ taraftaki nesneye concurrent_vector eşit olup olmadığını sınar. |
operator> | İşlecin concurrent_vector sol tarafındaki nesnenin sağ taraftaki nesneden concurrent_vector büyük olup olmadığını sınar. |
operator>= | İşlecin concurrent_vector sol tarafındaki nesnenin sağ taraftaki nesneden büyük veya buna eşit concurrent_vector olup olmadığını sınar. |
Sabitler
Veri Akışı Adı | Açıklama |
---|---|
AgentEventGuid | Eşzamanlılık Çalışma Zamanı'nda Aracılar kitaplığı tarafından tetiklenen ETW olaylarını açıklayan bir kategori GUID'i ({B9B5B78C-0713-4898-A21A-C67949DCED07}). |
ChoreEventGuid | Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ve doğrudan iş veya görevlerle ilgili ETW olaylarını açıklayan bir kategori GUID'i. |
ConcRT_ProviderGuid | Eşzamanlılık Çalışma Zamanı için ETW sağlayıcısı GUID'i. |
CONCRT_RM_VERSION_1 | Visual Studio 2010'da tanımlanan Resource Manager arabiriminin desteğini gösterir. |
ConcRTEventGuid | Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ve başka bir kategori tarafından daha ayrıntılı olarak açıklanmayan ETW olaylarını açıklayan bir kategori GUID'i. |
ContextEventGuid | Bağlamlarla doğrudan ilişkili Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ETW olaylarını açıklayan bir kategori GUID'i. |
COOPERATIVE_TIMEOUT_INFINITE | Beklemenin hiçbir zaman zaman aşımına neden olmadığını belirten değer. |
COOPERATIVE_WAIT_TIMEOUT | Bekleme süresinin zaman aşımına uğradı olduğunu gösteren değer. |
INHERIT_THREAD_PRIORITY | Zamanlayıcıdaki tüm bağlamların iş parçacığı önceliğinin zamanlayıcıyı oluşturan iş parçacığıyla aynı olması gerektiğini belirten ilke anahtarı ContextPriority için özel değer. |
LockEventGuid | Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ve doğrudan kilitlerle ilgili ETW olaylarını açıklayan bir kategori GUID'i. |
MaxExecutionResources | İlke anahtarları MinConcurrency ve MaxConcurrency için özel değer. Diğer kısıtlamaların olmaması halinde makinedeki donanım iş parçacığı sayısını varsayılan olarak belirtir. |
PPLParallelForeachEventGuid | Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ve işlevin kullanımıyla doğrudan ilişkili ETW olaylarını açıklayan bir kategori GUID'i parallel_for_each . |
PPLParallelForEventGuid | Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ve işlevin kullanımıyla doğrudan ilişkili ETW olaylarını açıklayan bir kategori GUID'i parallel_for . |
PPLParallelInvokeEventGuid | Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ve işlevin kullanımıyla doğrudan ilişkili ETW olaylarını açıklayan bir kategori GUID'i parallel_invoke . |
ResourceManagerEventGuid | Kaynak yöneticisiyle doğrudan ilişkili Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ETW olaylarını açıklayan bir kategori GUID'i. |
ScheduleGroupEventGuid | Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ve doğrudan zamanlama gruplarıyla ilgili ETW olaylarını açıklayan bir kategori GUID'i. |
SchedulerEventGuid | Zamanlayıcı etkinliğiyle doğrudan ilişkili Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ETW olaylarını açıklayan bir kategori GUID'i. |
VirtualProcessorEventGuid | Eşzamanlılık Çalışma Zamanı tarafından tetiklenen ve sanal işlemcilerle doğrudan ilişkili ETW olaylarını açıklayan bir kategori GUID'i. |
Gereksinimler
Üst bilgi: agents.h, concrt.h, concrtrm.h, concurrent_priority_queue.h, concurrent_queue.h, concurrent_unordered_map.h, concurrent_unordered_set.h, concurrent_vector.h, internal_concurrent_hash.h, internal_split_ordered_list.h, ppl.h, pplcancellation_token.h, pplconcrt.h, pplinterface.h, ppltasks.h