Bagikan melalui


Kelas shared_future

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.

Lihat juga

Referensi File Header
<masa depan>