Kelas yang dapat dikombinasikan

Objek combinable<T> ini dimaksudkan untuk menyediakan salinan data utas-privat, untuk melakukan sub-komputasi lokal utas bebas kunci selama algoritma paralel. Di akhir operasi paralel, sub-komputasi thread-private kemudian dapat digabungkan menjadi hasil akhir. Kelas ini dapat digunakan alih-alih variabel bersama, dan dapat mengakibatkan peningkatan performa jika sebaliknya akan ada banyak ketidakcocokan pada variabel bersama tersebut.

Sintaks

template<typename T>
class combinable;

Parameter

T
Jenis data hasil gabungan akhir. Jenis harus memiliki konstruktor salinan dan konstruktor default.

Anggota

Konstruktor Publik

Nama Deskripsi
Combinable Kelebihan beban. Membuat objek baru combinable .
~Combinable Destructor Menghancurkan objek combinable .

Metode Publik

Nama Deskripsi
hapus Menghapus hasil komputasi perantara dari penggunaan sebelumnya.
Menggabungkan Menghitung nilai akhir dari kumpulan sub-komputasi lokal utas dengan memanggil funktor gabungan yang disediakan.
combine_each Menghitung nilai akhir dari kumpulan sub-komputasi lokal utas dengan memanggil funktor gabungan yang disediakan sekali per sub-komputasi lokal utas. Hasil akhir diakumulasikan oleh objek fungsi.
Lokal Kelebihan beban. Mengembalikan referensi ke sub-komputasi thread-private.

Operator Publik

Nama Deskripsi
operator= Menetapkan ke combinable objek dari objek lain combinable .

Keterangan

Untuk informasi selengkapnya, lihat Kontainer dan Objek Paralel.

Hierarki Warisan

combinable

Persyaratan

Header: ppl.h

Namespace: konkurensi

hapus

Menghapus hasil komputasi perantara dari penggunaan sebelumnya.

void clear();

Combinable

Membuat objek baru combinable .

combinable();

template <typename _Function>
explicit combinable(_Function _FnInitialize);

combinable(const combinable& _Copy);

Parameter

_Fungsi
Jenis objek funktor inisialisasi.

_FnInitialize
Fungsi yang akan dipanggil untuk menginisialisasi setiap nilai thread-private baru dari jenis T. Ini harus mendukung operator panggilan fungsi dengan tanda tangan T ().

_Salinan
Objek yang combinable sudah ada untuk disalin ke dalam objek ini.

Keterangan

Konstruktor pertama menginisialisasi elemen baru dengan konstruktor default untuk jenis T.

Konstruktor kedua menginisialisasi elemen baru menggunakan funktor inisialisasi yang disediakan sebagai _FnInitialize parameter .

Konstruktor ketiga adalah konstruktor salinan.

~Combinable

Menghancurkan objek combinable .

~combinable();

combine

Menghitung nilai akhir dari kumpulan sub-komputasi lokal utas dengan memanggil funktor gabungan yang disediakan.

template<typename _Function>
T combine(_Function _FnCombine) const;

Parameter

_Fungsi
Jenis objek fungsi yang akan dipanggil untuk menggabungkan dua sub-komputasi lokal utas.

_FnCombine
Funktor yang digunakan untuk menggabungkan sub-komputasi. Tanda tangannya adalah T (T, T) atau T (const T&, const T&), dan harus asosiatif dan komutatif.

Tampilkan Nilai

Hasil akhir menggabungkan semua sub-komputasi thread-private.

combine_each

Menghitung nilai akhir dari kumpulan sub-komputasi lokal utas dengan memanggil funktor gabungan yang disediakan sekali per sub-komputasi lokal utas. Hasil akhir diakumulasikan oleh objek fungsi.

template<typename _Function>
void combine_each(_Function _FnCombine) const;

Parameter

_Fungsi
Jenis objek fungsi yang akan dipanggil untuk menggabungkan satu sub-komputasi lokal utas.

_FnCombine
Funktor yang digunakan untuk menggabungkan satu sub-komputasi. Tanda tangannya adalah void (T) atau void (const T&), dan harus asosiatif dan komutatif.

Lokal

Mengembalikan referensi ke sub-komputasi thread-private.

T& local();

T& local(bool& _Exists);

Parameter

_Ada
Referensi ke boolean. Nilai boolean yang direferensikan oleh argumen ini akan diatur ke true jika sub-komputasi sudah ada pada utas ini, dan diatur ke false jika ini adalah sub-komputasi pertama pada utas ini.

Tampilkan Nilai

Referensi ke sub-komputasi thread-private.

operator=

Menetapkan ke combinable objek dari objek lain combinable .

combinable& operator= (const combinable& _Copy);

Parameter

_Salinan
Objek yang combinable sudah ada untuk disalin ke dalam objek ini.

Tampilkan Nilai

Referensi ke objek ini combinable .

Baca juga

Namespace layanan konkurensi