나는 의심의 여지가있다.tbb :: memory_pool <tbb :: scalable_allocator <char>> 올바르게 사용하는 방법?
tbb :: memory_pool의 경우 < tbb :: scalable_allocator> shared_memory_pool_;
주 스레드에서 인스턴스화되는 경우 그리고 저는 worker_memory_pool_.malloc (sizeof (my_class))를 worker 쓰레드에서 호출했습니다. tbb는 메인 힙으로부터 그 크기의 메모리를 할당 할 것인가, 아니면 "도메인"으로부터 할당하여 일반적인 malloc()에 의한 잠금 경합이 여전히 피할 수 있도록 할 것인가?
스레드 별 힙이 있습니까? 스레드는 일반적으로 자체 스택 공간을 갖지만 힙을 생성 한 프로세스와 힙을 공유합니다. – Praetorian
도큐멘트가 명확하게 진술하지 않았으므로 명확하지 않지만 scalable_allocator가 동적 힙에서 직접 메모리를 할당하지 않으므로 melloc() 시스템 호출에 의해 블록되지 않습니다. –
동적 힙이라고하면, 그런 것은 없습니다. 내가 말한 것은 malloc()이 사용하는 "share heap"이었다. –