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 Ther 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ü 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.

~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.

Ayrıca bkz.

Eşzamanlılık Ad Alanı