Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
combinable<T> Nesnesi, paralel algoritmalar sırasında kilitsiz iş parçacığına özel alt hesaplamalar gerçekleştirmek için iş parçacığına özgü veri kopyaları sağlamaya yöneliktir. Paralel işlemin sonunda, iş parçacığı-özel alt hesaplamalar nihai sonuca 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.
Sözdizimi
template<typename T>
class combinable;
Parametreler
T
Son birleştirilmiş sonucun veri türü. Türün bir kopya oluşturucusunun ve varsayılan bir oluşturucusunun olması gerekir.
Üyeler
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| Combinable | Aşırı yüklü Yeni combinable bir nesne oluşturur. |
| ~birleştirilebilir Yıkıcı | Bir combinable nesneyi yok eder. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| berrak | Önceki kullanımdaki ara hesaplama sonuçlarını temizler. |
| birleştirmek | Sağlanan birleştirme işlevini çağırarak iş parçacığına özgü alt hesaplama kümesinden bir son değer hesaplar. |
| combine_each | Sağlanan combine functor'ı iş parçacığı-yerel alt hesaplama başına bir kez çağırarak iş parçacığı yerel alt hesaplama kümesinden son değeri hesaplar. Nihai sonuç, işlev nesnesi tarafından toplanır. |
| local | Aşırı yüklü İş parçacığına özel alt hesaplamaya bir referans döndürür. |
Ortak İşleçler
| Veri Akışı Adı | Açıklama |
|---|---|
| operator= | Başka bir combinable nesneden bir combinable nesneye atar. |
Açıklamalar
Daha fazla bilgi için bkz . Paralel Kapsayıcılar ve Nesneler.
Devralma Hiyerarşisi
combinable
Gereksinimler
Üst bilgi: ppl.h
Ad alanı: eşzamanlılık
berrak
Önceki kullanımdaki ara hesaplama sonuçlarını temizler.
void clear();
birleştirilebilir
Yeni combinable bir nesne oluşturur.
combinable();
template <typename _Function>
explicit combinable(_Function _FnInitialize);
combinable(const combinable& _Copy);
Parametreler
_Fonksiyon
Başlatma functor nesnesinin türü.
_FnInitialize
T türünün her yeni iş parçacığına özel değerini başlatmak için çağrılacak bir işlev. İmzası T ()olan bir işlev çağrısı işlecini desteklemelidir.
_Kopya etmek
Bu mevcut combinable nesne, bu nesneye kopyalanacaktır.
Açıklamalar
İlk oluşturucu, türü Tiçin varsayılan oluşturucu ile yeni öğeleri başlatır.
İkinci oluşturucu, parametre olarak sağlanan başlatma functor'ını _FnInitialize kullanarak yeni öğeleri başlatır.
Üçüncü oluşturucu, kopya oluşturucudur.
~Birleştirilebilir
Bir combinable nesneyi yok eder.
~combinable();
birleştirmek
Sağlanan birleştirme işlevini çağırarak iş parçacığına özgü alt hesaplama kümesinden bir son değer hesaplar.
template<typename _Function>
T combine(_Function _FnCombine) const;
Parametreler
_Fonksiyon
İki iş parçacığına özel alt hesaplamayı birleştirmek için çağrılacak işlev nesnesinin türü.
_FnCombine
Alt hesaplamaları birleştirmek için kullanılan functor. İmzası T (T, T) veya T (const T&, const T&) şeklindedir ve birleşimli ve değişmeli olmalıdır.
Dönüş Değeri
tüm iş parçacığı-özel alt hesaplamalarını birleştirmenin nihai sonucu.
combine_each
Sağlanan combine functor'ı iş parçacığı-yerel alt hesaplama başına bir kez çağırarak iş parçacığı yerel alt hesaplama kümesinden son değeri hesaplar. Nihai sonuç, işlev nesnesi tarafından toplanır.
template<typename _Function>
void combine_each(_Function _FnCombine) const;
Parametreler
_Fonksiyon
Tek bir iş parçacığı yerel alt hesaplamasını birleştirmek için çağrılacak işlev nesnesinin türü.
_FnCombine
Bir alt hesaplamayı birleştirmek için kullanılan functor. İmzası void (T) veya void (const T&) şeklindedir ve birleştirici ve değişmeli olmalıdır.
yerel
İş parçacığına özel alt hesaplamaya bir referans döndürür.
T& local();
T& local(bool& _Exists);
Parametreler
_Exists
Boolean'a bir referans. Bu bağımsız değişken tarafından başvurulan boole değeri, alt hesaplama bu iş parçacığında zaten mevcutsa true olarak, bu iş parçacığındaki ilk alt hesaplama ise false olarak ayarlanır.
Dönüş Değeri
İş parçacığına özel alt hesaplamaya başvuru.
operator=
Başka bir combinable nesneden bir combinable nesneye atar.
combinable& operator= (const combinable& _Copy);
Parametreler
_Kopya etmek
Mevcut bir combinable nesne, bu nesneye kopyalanacaktır.
Dönüş Değeri
Bu combinable nesnesine bir referans.