Kelas yang dapat dikombinasikan

Objek combinable<T> ini dimaksudkan untuk menyediakan salinan data yang bersifat privat untuk utas, untuk melakukan sub-komputasi yang bersifat lokal bagi utas tanpa 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
bersihkan Menghapus hasil komputasi perantara dari penggunaan sebelumnya.
Menggabungkan Menghitung nilai akhir dari kumpulan komputasi sub-lokal pada utas dengan memanggil fungsi penggabungan yang disediakan.
combine_each Menghitung nilai akhir dari kumpulan sub-komputasi lokal utas dengan memanggil funktor penggabungan yang disediakan sekali untuk setiap sub-komputasi lokal utas. Hasil akhir diakumulasikan oleh objek fungsi.
lokal Kelebihan beban. Mengembalikan referensi ke perhitungan sub-komputasi bersifat pribadi untuk thread.

Operator Publik

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

Keterangan

Untuk informasi selengkapnya, lihat Kontainer dan Objek Paralel.

Hierarki Pewarisan

combinable

Persyaratan

Header: ppl.h

Namespace: konkurensi

bersihkan

Menghapus hasil komputasi perantara dari penggunaan sebelumnya.

void clear();

Dapat Digabungkan

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. Harus mendukung operator pemanggil fungsi dengan tanda tangan T ().

_Salin
Objek combinable yang 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.

~Dapat dikombinasikan

Menghancurkan objek combinable .

~combinable();

menggabungkan

Menghitung nilai akhir dari kumpulan komputasi sub-lokal pada utas dengan memanggil fungsi penggabungan 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 dari menggabungkan semua sub-komputasi khusus thread.

combine_each

Menghitung nilai akhir dari kumpulan sub-komputasi lokal utas dengan memanggil funktor penggabungan yang disediakan sekali untuk setiap 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 sub-komputasi lokal-thread tunggal.

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

lokal

Mengembalikan referensi ke perhitungan sub-komputasi bersifat pribadi untuk thread.

T& local();

T& local(bool& _Exists);

Parameter

_Ada
Referensi pada tipe data 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

_Salin
Objek yang sudah ada combinable untuk disalin ke dalam yang ini.

Tampilkan Nilai

Referensi ke objek ini combinable .

Lihat juga

Namespace layanan konkurensi