А для чего создавать такое количество потоков?
Фрагментация памяти возникает при выделениях и удалениях памяти, но не совсем понятно какая связь с потоками.
Если же фрагментация памяти действительно вызывает проблемы, то надо писать свой распределитель памяти с учетом
особенностей своей программы.
Например, если программа выделяет память только размером 1 кбайт и 1 мегабайт, то маленькие кусочки должны выделяться
из какого-то пула, например размером 1 мегабайт, если пула не хватает то выделяется еще один блок
размером 1 мегабайт. Таким образом можно уменьшить влияние фрагментации памяти.