我有疑问。TBB tbb :: memory_pool <tbb :: scalable_allocator <char>>如何正确使用它?
对于tbb :: memory_pool < tbb :: scalable_allocator> shared_memory_pool_;
如果它在主线程中被实例化。而且,我在工作线程中调用了shared_memory_pool_.malloc(sizeof(my_class))。 tbb会从主堆中分配这样大小的内存,还是会从线程“域”中分配它,以避免普通malloc()引起的锁争用?
是否有线程特定的堆?线程通常有自己的堆栈空间,但是与创建它们的进程共享堆。 – Praetorian 2013-03-19 02:29:18
我也不清楚,因为该文件没有明确说明,但从我所知,scalable_allocator不直接从动态堆分配内存,所以它不会阻止melloc()系统调用 – 2013-03-19 02:32:36
我不应该说动态堆,没有这样的事情。我的意思是系统调用malloc()使用的“共享堆”。 – 2013-03-19 02:50:01