Aracılığıyla paylaş


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_popgibi 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ü.

_Ax
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ı

Ad Tanım
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

Ad Tanım
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

Ad Tanım
Temizleyin 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

Temizleyin

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 -unda
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;

İade Değeri

true eş zamanlı kuyruk baktığımız anda boşsa, false aksi takdirde.

Açıklamalar

Bu yöntem, , try_popve yöntemlerine yapılan çağrılara pushgö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;

İade 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_popve emptyyöntemlerine yapılan çağrılarla pusheş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.

İade 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_popve emptyyöntemlerine yapılan çağrılarla pusheş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;

İade 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;

İade 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;

İade Değeri

Eşzamanlı kuyruğun boyutu.

Açıklamalar

unsafe_sizeeşzamanlılık açısından güvenli değildir ve , try_popve emptyyöntemlerine pushyapılan çağrılarla eşzamanlı olarak çağrılırsa yanlış sonuçlar üretebilir.

Ayrıca bkz.

Eşzamanlılık Ad Alanı