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
Ad | Tanım |
---|---|
Combinable | Aşırı yüklendi. Yeni combinable bir nesne oluşturur. |
~combinable Yıkıcı | Bir combinable nesneyi yok eder. |
Genel Yöntemler
Ad | Tanım |
---|---|
Temizleyin | Önceki kullanımdaki ara hesaplama sonuçlarını temizler. |
Birleştirmek | 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
Ad | Tanım |
---|---|
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
Temizleyin
Ö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
_Işlev
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
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ştirmek
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
_Işlev
İ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.
İade 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
_Işlev
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
.
İade 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
Bu nesneye kopyalanacak mevcut combinable
bir nesne.
İade Değeri
Bu combinable
nesneye bir başvuru.
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin