combinable Sınıfı

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.

Ayrıca bkz.

Eşzamanlılık Ad Alanı