Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
concurrent_queue sınıfı, öğelerine ilk giriş, ilk çıkış erişimi sağlayan bir dizi kapsayıcı sınıfıdır.
push ve try_pop gibi işlemler dahil, eşzamanlılık açısından sınırlı sayıda güvenli işlemi etkinleştirir. Burada eşzamanlılık açısından güvenli, işaretçilerin veya yineleyicilerin her zaman geçerli olduğu anlamına gelir. Bu, öğe başlatmanın veya belirli bir dolaşma sırasının garantisi değildir.
Sözdizimi
template<typename T, class _Ax>
class concurrent_queue: public ::Concurrency::details::_Concurrent_queue_base_v4;
Parametreler
T
Kuyrukta depolanacak öğelerin veri türü.
_Ax
Bu eşzamanlı kuyruk için bellek ayırma ve serbest bırakma ayrıntılarını kapsayan depolanmış ayırıcı nesnesini temsil eden tür. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değerdir allocator<T>.
Üyeler
Genel Tür Tanımları
| Veri Akışı Adı | Açıklama |
|---|---|
allocator_type |
Eşzamanlı kuyruk için ayırıcı sınıfını temsil eden bir tür. |
const_iterator |
Eşzamanlı kuyruktaki öğeler üzerinde iş parçacığı güvenli const olmayan bir yineleyiciyi temsil eden bir tür. |
const_reference |
İşlemleri okumak ve gerçekleştirmek const için eşzamanlı kuyrukta depolanan bir const öğeye başvuru sağlayan tür. |
difference_type |
Eşzamanlı bir kuyruktaki iki öğe arasındaki işaretli mesafeyi sunan bir tür. |
iterator |
Eşzamanlı kuyruktaki öğeler üzerinde iş parçacığı güvenli olmayan bir yineleyiciyi temsil eden bir tür. |
reference |
Eşzamanlı kuyrukta depolanan bir öğeye başvuru sağlayan bir tür. |
size_type |
Eşzamanlı kuyruktaki öğe sayısını sayan bir tür. |
value_type |
Eşzamanlı kuyrukta depolanan veri türünü temsil eden bir tür. |
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| concurrent_queue | Aşırı yüklü Eşzamanlı kuyruk oluşturur. |
| ~concurrent_queue Yıkıcı işlev | Eşzamanlı kuyruğu yok eder. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| berrak | Eşzamanlı kuyruğu temizleyerek şu anda sıralanan öğeleri yok eder. Bu yöntem eşzamanlılık açısından güvenli değildir. |
| empty | Bu yöntem çağrıldığında eşzamanlı kuyruğun boş olup olmadığını test eder. Bu yöntem eşzamanlılık açısından güvenlidir. |
| get_allocator | Eşzamanlı kuyruğu oluşturmak için kullanılan ayırıcının bir kopyasını döndürür. Bu yöntem eşzamanlılık açısından güvenlidir. |
| push | Aşırı yüklü Eşzamanlı kuyruğun sonuna bir öğe ekler. Bu yöntem eşzamanlılık açısından güvenlidir. |
| try_pop | Varsa kuyruktan bir öğeyi çıkarır. Bu yöntem eşzamanlılık açısından güvenlidir. |
| unsafe_begin | Aşırı yüklü
iterator veya const_iterator türünde bir yineleyici döndürerek eşzamanlı kuyruğun başına gider. Bu yöntem eşzamanlılık açısından güvenli değildir. |
| güvensiz_bitiş | Aşırı yüklü Eş zamanlı kuyruğun sonuna, iterator veya const_iterator türünde bir yineleyici döndürür. Bu yöntem eşzamanlılık açısından güvenli değildir. |
| unsafe_size | Kuyruktaki öğe sayısını döndürür. Bu yöntem eşzamanlılık açısından güvenli değildir. |
Açıklamalar
Daha fazla bilgi için bkz . Paralel Kapsayıcılar ve Nesneler.
Devralma Hiyerarşisi
concurrent_queue
Gereksinimler
Üst bilgi: concurrent_queue.h
Ad alanı: eşzamanlılık
berrak
Eşzamanlı kuyruğu temizleyerek şu anda sıralanan öğeleri yok eder. Bu yöntem eşzamanlılık açısından güvenli değildir.
void clear();
concurrent_queue
Eşzamanlı kuyruk oluşturur.
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);
Parametreler
_InputIterator
Bir değer aralığını belirten giriş yineleyicisinin türü.
_Al
Kullanılacak bu nesneyle bağlantılı tahsis edici sınıf.
_OtherQ
Öğeleri kopyalamak veya taşımak için kullanılan kaynak concurrent_queue nesne.
_Başla
Kopyalanacak öğe aralığındaki ilk öğenin konumu.
_Son
Kopyalanacak öğe aralığının ötesindeki ilk öğenin konumu.
Açıklamalar
Tüm oluşturucular bir ayırıcı nesnesi _Al depolar ve kuyruğu başlatır.
İlk oluşturucu boş bir başlangıç kuyruğu belirtir ve kullanılacak ayırıcı türünü açıkça belirtir.
İkinci oluşturucu eşzamanlı kuyruğun _OtherQbir kopyasını belirtir.
Üçüncü oluşturucu eşzamanlı kuyruğunun _OtherQtaşınmasını belirtir.
Dördüncü oluşturucu[ _Begin, _End) yineleyici aralığı tarafından sağlanan değerleri belirtir.
~concurrent_queue
Eşzamanlı kuyruğu yok eder.
~concurrent_queue();
empty
Bu yöntem çağrıldığında eşzamanlı kuyruğun boş olup olmadığını test eder. Bu yöntem eşzamanlılık açısından güvenlidir.
bool empty() const;
Dönüş Değeri
true eş zamanlı kuyruk baktığımız anda boşsa, false aksi takdirde.
Açıklamalar
Bu yöntem, push, try_pop, ve empty yöntemlerine yapılan çağrılar açısından eşzamanlılık açısından güvenli olsa da, döndürülen değer çağıran iş parçacığı tarafından incelendiğinde yanlış olabilir.
get_allocator
Eşzamanlı kuyruğu oluşturmak için kullanılan ayırıcının bir kopyasını döndürür. Bu yöntem eşzamanlılık açısından güvenlidir.
allocator_type get_allocator() const;
Dönüş Değeri
Eşzamanlı kuyruğu oluşturmak için kullanılan ayırıcının bir kopyası.
'itmek' or 'gönderme'
Eşzamanlı kuyruğun sonuna bir öğe ekler. Bu yöntem eşzamanlılık açısından güvenlidir.
void push(const T& _Src);
void push(T&& _Src);
Parametreler
_Src
Kuyruğa eklenecek öğe.
Açıklamalar
push, pushve try_popyöntemlerine yapılan çağrılarla emptyeşzamanlılık açısından güvenlidir.
try_pop
Varsa kuyruktan bir öğeyi çıkarır. Bu yöntem eşzamanlılık açısından güvenlidir.
bool try_pop(T& _Dest);
Parametreler
_Dest
Kuyruktan çıkarılmış öğeyi depolamak için bir konuma referans.
Dönüş Değeri
true bir öğe başarıyla sıralandıysa, false aksi takdirde.
Açıklamalar
Bir öğe başarıyla kuyruktan çıkarılırsa, _Dest parametresi çıkarılan değeri alır, kuyrukta tutulan özgün değer yok edilir ve bu işlev true değerini döndürür. Kuyruktan çıkarılacak bir öğe yoksa, bu işlev engelleme olmadan false döndürür ve _Dest parametresinin içeriği tanımsız olur.
try_pop, pushve try_popyöntemlerine yapılan çağrılarla emptyeşzamanlılık açısından güvenlidir.
güvensiz_başlat
iterator veya const_iterator türünde bir yineleyici döndürerek eşzamanlı kuyruğun başına gider. Bu yöntem eşzamanlılık açısından güvenli değildir.
iterator unsafe_begin();
const_iterator unsafe_begin() const;
Dönüş Değeri
Eşzamanlı kuyruk nesnesinin başına işaret eden iterator veya const_iterator türünde bir yineleyici.
Açıklamalar
Sınıfın concurrent_queue yineleyicileri, yavaş olduklarından ve yineleme diğer kuyruk işlemlerine göre eşzamanlılık açısından güvenli olmadığından öncelikle hata ayıklamaya yöneliktir.
güvensiz_sonu
Eş zamanlı kuyruğun sonuna, iterator veya const_iterator türünde bir yineleyici döndürür. Bu yöntem eşzamanlılık açısından güvenli değildir.
iterator unsafe_end();
const_iterator unsafe_end() const;
Dönüş Değeri
Türü iterator veya const_iterator olan, eş zamanlı kuyruğun sonuna kadar giden bir yineleyici.
Açıklamalar
Sınıfın concurrent_queue yineleyicileri, yavaş olduklarından ve yineleme diğer kuyruk işlemlerine göre eşzamanlılık açısından güvenli olmadığından öncelikle hata ayıklamaya yöneliktir.
güvensiz_boyut
Kuyruktaki öğe sayısını döndürür. Bu yöntem eşzamanlılık açısından güvenli değildir.
size_type unsafe_size() const;
Dönüş Değeri
Eşzamanlı kuyruğun boyutu.
Açıklamalar
unsafe_sizeeşzamanlılık açısından güvenli değildir ve , pushve try_popyöntemlerine emptyyapılan çağrılarla eşzamanlı olarak çağrılırsa yanlış sonuçlar üretebilir.