concurrent_queue Sınıfı
concurrent_queue
sınıfı, öğelerine ilk giriş, ilk çıkış erişimi sağlayan bir dizi kapsayıcı sınıfıdır. ve try_pop
gibi push
eşzamanlılık açısından güvenli sınırlı bir dizi 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şlatma 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ü.
_Balta
Bu eşzamanlı kuyruk için bellek ayırma ve serbest bırakma hakkındaki ayrıntıları kapsülleyen 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ı kuyruktaki iki öğe arasında imzalı mesafe sağlayan 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üklendi. Eşzamanlı kuyruk oluşturur. |
~concurrent_queue Yıkıcı | 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üklendi. Eşzamanlı kuyruğun kuyruk ucundaki bir öğeyi sıralar. Bu yöntem eşzamanlılık açısından güvenlidir. |
try_pop | Varsa kuyruktan bir öğeyi sıralar. Bu yöntem eşzamanlılık açısından güvenlidir. |
unsafe_begin | Aşırı yüklendi. Eşzamanlı kuyruğun başına veya const_iterator türünde iterator bir yineleyici döndürür. Bu yöntem eşzamanlılık açısından güvenli değildir. |
unsafe_end | Aşırı yüklendi. Eş zamanlı kuyruğun sonuna veya const_iterator türünde iterator 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
Bu nesneyle kullanılacak kaynak ayırıcı sınıfı.
_OtherQ
Öğeleri kopyalamak veya taşımak için kaynak concurrent_queue
nesne.
_Başlamak
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 _OtherQ
bir kopyasını belirtir.
Üçüncü oluşturucu eşzamanlı kuyruğunun _OtherQ
taşı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, , try_pop
ve yöntemlerine yapılan çağrılara push
göre eşzamanlılık açısından güvenli olsa daempty
, 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ı.
push
Eşzamanlı kuyruğun kuyruk ucundaki bir öğeyi sıralar. 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
, try_pop
ve empty
yöntemlerine yapılan çağrılarla push
eşzamanlılık açısından güvenlidir.
try_pop
Varsa kuyruktan bir öğeyi sıralar. Bu yöntem eşzamanlılık açısından güvenlidir.
bool try_pop(T& _Dest);
Parametreler
_Dest
Sıralanmamış öğeyi depolamak için bir konuma başvuru.
Dönüş Değeri
true
bir öğe başarıyla sıralandıysa, false
aksi takdirde.
Açıklamalar
Bir öğenin sırası başarıyla kaldırılırsa, parametresi _Dest
sıralanan değeri alır, kuyrukta tutulan özgün değer yok edilir ve bu işlev döndürür true
. Sırayı kaldıracak öğe yoksa, bu işlev engelleme olmadan döndürür false
ve parametrenin _Dest
içeriği tanımsız olur.
try_pop
, try_pop
ve empty
yöntemlerine yapılan çağrılarla push
eşzamanlılık açısından güvenlidir.
unsafe_begin
Eşzamanlı kuyruğun başına veya const_iterator
türünde iterator
bir yineleyici döndürür. 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 türünün iterator
veya const_iterator
başlangıcının yineleyicisi.
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.
unsafe_end
Eş zamanlı kuyruğun sonuna veya const_iterator
türünde iterator
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
Eş zamanlı kuyruğun türüne iterator
veya const_iterator
sonuna kadar olan 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.
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.
size_type unsafe_size() const;
Dönüş Değeri
Eşzamanlı kuyruğun boyutu.
Açıklamalar
unsafe_size
eşzamanlılık açısından güvenli değildir ve , try_pop
ve empty
yöntemlerine push
yapılan çağrılarla eşzamanlı olarak çağrılırsa yanlış sonuçlar üretebilir.