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.
Kelas concurrent_queue ini adalah kelas kontainer urutan yang memungkinkan akses first-in dan first-out ke elemennya. Ini memungkinkan serangkaian operasi yang aman konkurensi terbatas, seperti push dan try_pop. Di sini, konkurensi-aman berarti pointer atau iterator selalu valid. Ini bukan jaminan inisialisasi elemen, atau urutan traversal tertentu.
Sintaks
template<typename T, class _Ax>
class concurrent_queue: public ::Concurrency::details::_Concurrent_queue_base_v4;
Parameter
T
Jenis data elemen yang akan disimpan dalam antrean.
_Kapak
Jenis yang mewakili objek alokator tersimpan yang merangkum detail tentang alokasi dan alokasi memori untuk antrean bersamaan ini. Argumen ini bersifat opsional dan nilai defaultnya adalah allocator<T>.
Anggota
Typedef Publik
| Nama | Deskripsi |
|---|---|
allocator_type |
Jenis yang mewakili kelas alokator untuk antrean bersamaan. |
const_iterator |
Jenis yang mewakili iterator non-thread-safe const melalui elemen dalam antrean bersamaan. |
const_reference |
Jenis yang menyediakan referensi ke elemen yang const disimpan dalam antrean bersamaan untuk membaca dan melakukan const operasi. |
difference_type |
Jenis yang menyediakan jarak yang ditandatangani antara dua elemen dalam antrean bersamaan. |
iterator |
Jenis yang mewakili iterator non-thread-safe di atas elemen dalam antrean bersamaan. |
reference |
Jenis yang menyediakan referensi ke elemen yang disimpan dalam antrean bersamaan. |
size_type |
Jenis yang menghitung jumlah elemen dalam antrean bersamaan. |
value_type |
Jenis yang mewakili jenis data yang disimpan dalam antrean bersamaan. |
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
| concurrent_queue | Kelebihan beban. Membuat antrean bersamaan. |
| ~concurrent_queue Destructor | Menghancurkan antrean bersamaan. |
Metode Publik
| Nama | Deskripsi |
|---|---|
| hapus | Menghapus antrean bersamaan, menghancurkan elemen yang saat ini diantrekan. Metode ini tidak aman konkurensi. |
| kosong | Menguji apakah antrean bersamaan kosong saat metode ini dipanggil. Metode ini aman konkurensi. |
| get_allocator | Mengembalikan salinan alokator yang digunakan untuk membuat antrean bersamaan. Metode ini aman konkurensi. |
| dorong | Kelebihan beban. Mengantrekan item di ujung ekor antrean bersamaan. Metode ini aman konkurensi. |
| try_pop | Menghapus antrean item dari antrean jika item tersedia. Metode ini aman konkurensi. |
| unsafe_begin | Kelebihan beban. Mengembalikan iterator tipe iterator atau const_iterator ke awal antrean bersamaan. Metode ini tidak aman konkurensi. |
| unsafe_end | Kelebihan beban. Mengembalikan iterator jenis iterator atau const_iterator ke akhir antrean bersamaan. Metode ini tidak aman konkurensi. |
| unsafe_size | Mengembalikan jumlah item dalam antrean. Metode ini tidak aman konkurensi. |
Keterangan
Untuk informasi selengkapnya, lihat Kontainer dan Objek Paralel.
Hierarki Warisan
concurrent_queue
Persyaratan
Header: concurrent_queue.h
Namespace: konkurensi
hapus
Menghapus antrean bersamaan, menghancurkan elemen yang saat ini diantrekan. Metode ini tidak aman konkurensi.
void clear();
concurrent_queue
Membuat antrean bersamaan.
explicit concurrent_queue(
const allocator_type& _Al = allocator_type());
concurrent_queue(
const concurrent_queue& _OtherQ,
const allocator_type& _Al = allocator_type());
concurrent_queue(
concurrent_queue&& _OtherQ,
const allocator_type& _Al = allocator_type());
template<typename _InputIterator>
concurrent_queue(_InputIterator _Begin,
_InputIterator _End);
Parameter
_InputIterator
Jenis iterator input yang menentukan rentang nilai.
_Al
Kelas alokator untuk digunakan dengan objek ini.
_OtherQ
Objek sumber concurrent_queue untuk menyalin atau memindahkan elemen.
_Mulai
Posisi elemen pertama dalam rentang elemen yang akan disalin.
_Ujung
Posisi elemen pertama di luar rentang elemen yang akan disalin.
Keterangan
Semua konstruktor menyimpan objek _Al alokator dan menginisialisasi antrean.
Konstruktor pertama menentukan antrean awal kosong dan secara eksplisit menentukan jenis alokator yang akan digunakan.
Konstruktor kedua menentukan salinan antrean bersamaan _OtherQ.
Konstruktor ketiga menentukan pemindahan antrean bersamaan _OtherQ.
Konstruktor keempat menentukan nilai yang disediakan oleh rentang iterator [ _Begin, _End).
~concurrent_queue
Menghancurkan antrean bersamaan.
~concurrent_queue();
kosong
Menguji apakah antrean bersamaan kosong saat metode ini dipanggil. Metode ini aman konkurensi.
bool empty() const;
Tampilkan Nilai
true jika antrean bersamaan kosong saat kami melihat, false jika tidak.
Keterangan
Meskipun metode ini aman konkurensi sehubungan dengan panggilan ke metode , , try_popdan empty, nilai yang dikembalikan mungkin salah pada saat diperiksa oleh utas pushpanggilan.
get_allocator
Mengembalikan salinan alokator yang digunakan untuk membuat antrean bersamaan. Metode ini aman konkurensi.
allocator_type get_allocator() const;
Tampilkan Nilai
Salinan alokator yang digunakan untuk membangun antrean bersamaan.
push
Mengantrekan item di ujung ekor antrean bersamaan. Metode ini aman konkurensi.
void push(const T& _Src);
void push(T&& _Src);
Parameter
_Src
Item yang akan ditambahkan ke antrean.
Keterangan
push aman konkurensi sehubungan dengan panggilan ke metode push, , try_popdan empty.
try_pop
Menghapus antrean item dari antrean jika item tersedia. Metode ini aman konkurensi.
bool try_pop(T& _Dest);
Parameter
_Dest
Referensi ke lokasi untuk menyimpan item yang dihapus antreannya.
Tampilkan Nilai
true jika item berhasil dihapus antreannya, false jika tidak.
Keterangan
Jika item berhasil dihapus antreannya, parameter _Dest menerima nilai yang dihapus antreannya, nilai asli yang disimpan dalam antrean akan dihancurkan, dan fungsi ini mengembalikan true. Jika tidak ada item yang akan dihapus antreannya, fungsi ini akan kembali false tanpa pemblokiran _Dest , dan konten parameter tidak terdefinisi.
try_pop aman konkurensi sehubungan dengan panggilan ke metode push, , try_popdan empty.
unsafe_begin
Mengembalikan iterator tipe iterator atau const_iterator ke awal antrean bersamaan. Metode ini tidak aman konkurensi.
iterator unsafe_begin();
const_iterator unsafe_begin() const;
Tampilkan Nilai
Iterator jenis iterator atau const_iterator ke awal objek antrean bersamaan.
Keterangan
Iterator untuk concurrent_queue kelas terutama ditujukan untuk penelusuran kesalahan, karena lambat, dan iterasi tidak aman konkurensi sehubungan dengan operasi antrean lainnya.
unsafe_end
Mengembalikan iterator jenis iterator atau const_iterator ke akhir antrean bersamaan. Metode ini tidak aman konkurensi.
iterator unsafe_end();
const_iterator unsafe_end() const;
Tampilkan Nilai
Iterator jenis iterator atau const_iterator ke akhir antrean bersamaan.
Keterangan
Iterator untuk concurrent_queue kelas terutama ditujukan untuk penelusuran kesalahan, karena lambat, dan iterasi tidak aman konkurensi sehubungan dengan operasi antrean lainnya.
unsafe_size
Mengembalikan jumlah item dalam antrean. Metode ini tidak aman konkurensi.
size_type unsafe_size() const;
Tampilkan Nilai
Ukuran antrean bersamaan.
Keterangan
unsafe_size tidak aman konkurensi dan dapat menghasilkan hasil yang salah jika dipanggil bersamaan dengan panggilan ke metode push, , try_popdan empty.