Ve výchozím nastavení má C pouze jednu haldu.
To znamená, že některé alokátory, které si uvědomují vlákna, rozdělí haldu tak, aby každé vlákno mělo svou vlastní oblast, ze které lze alokovat. Myšlenka je, že by to mělo zlepšit měřítko haldy.
Jedním z příkladů takové haldy je Hoard.
Ne. Všechna vlákna sdílejí společnou haldu.
Každé vlákno má soukromý zásobník, do kterého může rychle přidávat a odebírat položky. Díky tomu je paměť založená na zásobníku rychlá, ale pokud použijete příliš mnoho paměti zásobníku, k čemuž dochází při nekonečné rekurzi, dojde k přetečení zásobníku.
Protože všechna vlákna sdílejí stejnou haldu, musí být přístup k alokátoru/deallokátoru synchronizován. Existují různé metody a knihovny, jak se vyhnout sporům o alokátory.
Některé jazyky umožňují vytvářet soukromé fondy paměti nebo jednotlivé haldy, které můžete přiřadit k jednomu vláknu.