sync_per_thread 클래스
각 스레드에 대해 별도의 캐시 개체를 제공하는 동기화 필터를 설명합니다.
구문
template <class Cache>
class sync_per_thread
매개 변수
캐시
동기화 필터와 연결된 캐시 형식입니다. cache_chunklist
, cache_freelist
또는 cache_suballoc
일 수 있습니다.
설명
sync_per_thread
를 사용하는 할당자는 특정 스레드에 할당된 블록을 다른 스레드에서 할당 취소할 수 없더라도 비교 결과 같은 항목으로 확인될 수 있습니다. 이러한 할당자 중 하나를 사용할 때는 특정 스레드에 할당된 메모리 블록이 다른 스레드에 표시되면 안 됩니다. 즉, 실제로는 단일 스레드만 이러한 할당자 중 하나를 사용하는 컨테이너에 액세스해야 합니다.
멤버 함수
멤버 함수 | 설명 |
---|---|
allocate | 메모리 블록을 할당합니다. |
deallocate | 지정된 위치부터 시작하여 스토리지에서 지정된 개수의 개체를 해제합니다. |
equals | 두 캐시가 같은지 비교합니다. |
요구 사항
헤더:<할당자>
네임스페이스: stdext
sync_per_thread::allocate
메모리 블록을 할당합니다.
void *allocate(std::size_t count);
매개 변수
count
할당할 배열의 요소 수입니다.
설명
구성원 함수는 현재 스레드에 속하는 캐시 개체에 대한 cache::allocate(count)
호출 결과를 반환합니다. 현재 스레드에 대해 캐시 개체가 할당되지 않은 경우에는 먼저 캐시 개체가 할당됩니다.
sync_per_thread::d모든지
지정된 위치부터 시작하여 스토리지에서 지정된 개수의 개체를 해제합니다.
void deallocate(void* ptr, std::size_t count);
매개 변수
ptr
스토리지에서 할당을 취소할 첫 번째 개체에 대한 포인터입니다.
count
스토리지에서 할당을 취소할 개체의 수입니다.
설명
구성원 함수는 현재 스레드에 속하는 캐시 개체에 대해 deallocate
를 호출합니다. 현재 스레드에 대해 캐시 개체가 할당되지 않은 경우에는 먼저 캐시 개체가 할당됩니다.
sync_per_thread::equals
두 캐시가 같은지 비교합니다.
bool equals(const sync<Cache>& Other) const;
매개 변수
캐시
동기화 필터의 캐시 개체입니다.
기타
같은지 비교할 캐시 개체입니다.
Return Value
false
이 개체 또는 현재 스레드의 Other 에 대해 할당된 캐시 개체가 없으면 입니다. 그렇지 않으면 두 캐시 개체에 operator==
를 적용한 결과가 반환됩니다.