sync_per_thread 類別
描述可為每個執行緒物件提供不同快取物件的同步處理篩選。
語法
template <class Cache>
class sync_per_thread
參數
Cache
與同步處理篩選相關聯的快取類型。 可以是 cache_chunklist
、cache_freelist
或 cache_suballoc
。
備註
即使無法從另一個執行緒中取消配置某個執行緒中配置的區塊,使用 sync_per_thread
的配置器還是可以比較是否相等。 當您使用這其中一個配置器時,其他執行緒應該看不到某個執行緒中配置的記憶體區塊。 實際上,這表示使用這其中一個配置器的容器只能透過單一執行緒來存取。
成員函式
成員函數 | 描述 |
---|---|
allocate | 配置記憶體區塊。 |
deallocate | 從指定位置起算的儲存體中,釋放指定數目的物件。 |
equals | 比較兩個快取是否相等。 |
需求
Header:<allocators>
命名空間: stdext
sync_per_thread::allocate
配置記憶體區塊。
void *allocate(std::size_t count);
參數
計數
要配置的陣列元素數目。
備註
成員函式會在屬於目前執行緒的快取物件上傳回 cache::allocate(count)
呼叫的結果。 如果未針對目前的執行緒配置任何快取物件,則它會先配置一個。
sync_per_thread::d eallocate
從指定位置起算的儲存體中,釋放指定數目的物件。
void deallocate(void* ptr, std::size_t count);
參數
ptr
要從儲存體解除配置之第一個物件的指標。
計數
要從儲存空間解除配置的物件數目。
備註
成員函式會在屬於目前執行緒的快取物件上呼叫 deallocate
。 如果未針對目前的執行緒配置任何快取物件,則它會先配置一個。
sync_per_thread::equals
比較兩個快取是否相等。
bool equals(const sync<Cache>& Other) const;
參數
Cache
同步處理篩選的快取物件。
其他
要比較是否相等的快取物件。
傳回值
false
如果目前線程中尚未配置任何快取物件,或 針對目前線程中的 Other 配置任何快取物件。 否則會傳回將 operator==
套用到這兩個快取物件的結果。