sync_per_thread Sınıfı
Her iş parçacığı için ayrı bir önbellek nesnesi sağlayan bir eşitleme filtresi açıklar.
Sözdizimi
template <class Cache>
class sync_per_thread
Parametreler
Önbellek
Eşitleme filtresiyle ilişkili önbellek türü. , veya cache_suballoc
olabilircache_chunklist
cache_freelist
.
Açıklamalar
Kullanan sync_per_thread
ayırıcılar, bir iş parçacığında ayrılan blokların başka bir iş parçacığından serbest bırakılamamasına rağmen eşit karşılaştırma yapabilir. Bu ayırıcılardan birini kullanırken, bir iş parçacığında ayrılan bellek blokları diğer iş parçacıklarına görünür hale getirilmemelidir. Uygulamada bu, bu ayırıcılardan birini kullanan bir kapsayıcıya yalnızca tek bir iş parçacığı tarafından erişilmesi gerektiği anlamına gelir.
Üye işlevleri
Üye işlevi | Açıklama |
---|---|
allocate | Bir bellek bloğu ayırır. |
Ayırması | Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın. |
equals | Eşitlik için iki önbelleği karşılaştırır. |
Gereksinimler
Üst bilgi:<ayırıcılar>
Ad alanı: stdext
sync_per_thread::allocate
Bir bellek bloğu ayırır.
void *allocate(std::size_t count);
Parametreler
count
Dizideki ayrılacak öğe sayısı.
Açıklamalar
Üye işlevi, geçerli iş parçacığına cache::allocate(count)
ait önbellek nesnesinde çağrısının sonucunu döndürür. Geçerli iş parçacığı için hiçbir önbellek nesnesi ayrılmadıysa, önce bir tane ayırır.
sync_per_thread::d eallocate
Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın.
void deallocate(void* ptr, std::size_t count);
Parametreler
ptr
Depolama alanından serbest bırakılacak ilk nesnenin işaretçisi.
count
Depolama alanından serbest bırakılacak nesne sayısı.
Açıklamalar
Üye işlevi, geçerli iş parçacığına ait önbellek nesnesini çağırır deallocate
. Geçerli iş parçacığı için hiçbir önbellek nesnesi ayrılmadıysa, önce bir tane ayırır.
sync_per_thread::equals
Eşitlik için iki önbelleği karşılaştırır.
bool equals(const sync<Cache>& Other) const;
Parametreler
Önbellek
Eşitleme filtresinin önbellek nesnesi.
Diğer
Eşitlik için karşılaştıracak önbellek nesnesi.
Dönüş Değeri
false
bu nesne için veya geçerli iş parçacığındaki Diğer için önbellek nesnesi ayrılmamışsa. Aksi takdirde, iki önbellek nesnesine uygulamanın operator==
sonucunu döndürür.