Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menjelaskan objek pengembalian asinkron. Berbeda dengan objek di masa mendatang , penyedia asinkron dapat dikaitkan dengan sejumlah shared_future objek.
Sintaks
template <class Ty>
class shared_future;
Keterangan
Jangan panggil metode apa pun selain valid, operator=, dan destruktor pada shared_future objek yang kosong.
shared_future objek tidak disinkronkan. Metode panggilan pada objek yang sama dari beberapa utas memperkenalkan perlombaan data yang memiliki hasil yang tidak dapat diprediksi.
Anggota
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
| shared_future | Membuat shared_future objek. |
Metode Publik
| Nama | Deskripsi |
|---|---|
| get | Mengambil hasil yang disimpan dalam status asinkron terkait. |
| sah | Menentukan apakah objek tidak kosong. |
| Tunggu | Memblokir utas saat ini hingga status asinkron terkait siap. |
| wait_for | Memblokir hingga status asinkron terkait siap atau sampai waktu yang ditentukan berlalu. |
| wait_until | Memblokir hingga status asinkron terkait siap atau sampai titik waktu yang ditentukan. |
Operator Publik
| Nama | Deskripsi |
|---|---|
| shared_future::operator= | Menetapkan status asinkron terkait baru. |
Persyaratan
Header:<future>
Namespace: std
shared_future::get
Mengambil hasil yang disimpan dalam status asinkron terkait.
const Ty& get() const;
Ty& get() const;
void get() const;
Keterangan
Jika hasilnya adalah pengecualian, metode akan menumbuhkannya kembali. Jika tidak, hasilnya dikembalikan.
Sebelum mengambil hasilnya, metode ini memblokir utas saat ini hingga status asinkron terkait siap.
Untuk spesialisasi shared_future<Ty&>parsial , nilai yang disimpan secara efektif merupakan referensi ke objek yang diteruskan ke penyedia asinkron sebagai nilai pengembalian.
Karena tidak ada nilai tersimpan untuk spesialisasi shared_future<void>, metode mengembalikan void.
shared_future::operator=
Mentransfer status asinkron terkait dari objek tertentu.
shared_future& operator=(shared_future&& Right) noexcept;
shared_future& operator=(const shared_future& Right);
Parameter
Kanan
Objek shared_future.
Tampilkan Nilai
*this
Keterangan
Untuk operator pertama, Kanan tidak lagi memiliki status asinkron terkait setelah operasi.
Untuk metode kedua, Right mempertahankan status asinkron terkait.
konstruktor shared_future::shared_future
Membuat shared_future objek.
shared_future() noexcept;
shared_future(future<Ty>&& Right) noexcept;
shared_future(shared_future&& Right) noexcept;
shared_future(const shared_future& Right);
Parameter
Kanan
Masa depan atau shared_future objek.
Keterangan
Konstruktor pertama membangun shared_future objek yang tidak memiliki status asinkron terkait.
Konstruktor kedua dan ketiga membuat shared_future objek dan mentransfer status asinkron terkait dari Kanan. Hak tidak lagi memiliki status asinkron terkait.
Konstruktor keempat membuat shared_future objek yang memiliki status asinkron terkait yang sama dengan Kanan.
shared_future::valid
Menentukan apakah objek memiliki status asinkron terkait.
bool valid() noexcept;
Tampilkan Nilai
true jika objek memiliki status asinkron terkait; jika tidak, false.
shared_future::wait
Memblokir utas saat ini hingga status asinkron terkait siap.
void wait() const;
Keterangan
Status asinkron terkait hanya siap jika penyedia asinkronnya telah menyimpan nilai pengembalian atau menyimpan pengecualian.
shared_future::wait_for
Memblokir utas saat ini hingga status asinkron terkait siap atau hingga waktu yang ditentukan berlalu.
template <class Rep, class Period>
future_status wait_for(
const chrono::duration<Rep, Period>& Rel_time) const;
Parameter
Rel_time
Objek chrono::d uration yang menentukan interval waktu maksimum yang diblokir utas.
Tampilkan Nilai
future_status yang menunjukkan alasan untuk kembali.
Keterangan
Status asinkron terkait hanya siap jika penyedia asinkronnya telah menyimpan nilai pengembalian atau menyimpan pengecualian.
shared_future::wait_until
Memblokir utas saat ini hingga status asinkron terkait siap atau sampai setelah titik waktu yang ditentukan.
template <class Clock, class Duration>
future_status wait_until(
const chrono::time_point<Clock, Duration>& Abs_time) const;
Parameter
Abs_time
Objek chrono::time_point yang menentukan waktu setelah itu utas dapat membuka blokir.
Tampilkan Nilai
future_status yang menunjukkan alasan untuk kembali.
Keterangan
Status asinkron terkait hanya siap jika penyedia asinkronnya telah menyimpan nilai pengembalian atau menyimpan pengecualian.