我有疑問。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