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.
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üklendi. Yeni combinable bir nesne oluşturur. |
~combinable 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şmek | Sağlanan birleştirme functor'ını çağırarak iş parçacığı yerel alt hesaplama kümesinden son değeri 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. Sonuç, işlev nesnesi tarafından birikir. |
local | Aşırı yüklendi. İş parçacığı-özel alt hesaplamasına başvuru döndürür. |
Ortak İşleçler
Veri Akışı Adı | Açıklama |
---|---|
operator= | Başka combinable bir 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();
Combinable
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ürünün T
her yeni iş parçacığı-ö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 nesneye kopyalanacak mevcut combinable
bir nesne.
Açıklamalar
İlk oluşturucu, türü T
iç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.
~Combinable
Bir combinable
nesneyi yok eder.
~combinable();
birleşmek
Sağlanan birleştirme functor'ını çağırarak iş parçacığı yerel alt hesaplama kümesinden son değeri hesaplar.
template<typename _Function>
T combine(_Function _FnCombine) const;
Parametreler
_Fonksiyon
İki iş parçacığı yerel alt hesaplamasını birleştirmek için çağrılacak işlev nesnesinin türü.
_FnCombine
Alt hesaplamaları birleştirmek için kullanılan functor. İmzası veya T (const T&, const T&)
şeklindedir T (T, T)
ve ilişkilendirilebilir ve karşılıklı 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. Sonuç, işlev nesnesi tarafından birikir.
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ı veya void (const T&)
şeklindedir void (T)
ve ilişkilendirilebilir ve karşılıklı olmalıdır.
yerel
İş parçacığı-özel alt hesaplamasına başvuru döndürür.
T& local();
T& local(bool& _Exists);
Parametreler
_Var
Boole'a başvuru. Bu bağımsız değişken tarafından başvuruda bulunılan boole değeri, alt hesaplama bu iş parçacığında zaten varsa olarak ayarlanır true
ve bu, bu iş parçacığındaki ilk alt hesaplama olup olmadığını olarak ayarlanır false
.
Dönüş Değeri
İş parçacığı özel alt hesaplamasına başvuru.
operator=
Başka combinable
bir nesneden bir combinable
nesneye atar.
combinable& operator= (const combinable& _Copy);
Parametreler
_Kopya etmek
Bu nesneye kopyalanacak mevcut combinable
bir nesne.
Dönüş Değeri
Bu combinable
nesneye bir başvuru.