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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk