Когда память выделяется с помощью new или malloc, распределителю может потребоваться защитить себя от повторного входа. Я вижу два способа сделать это:
- Большой мьютекс. Это решение простое, но имеет низкую производительность
- Пул памяти зарезервирован для каждого потока. Производительность высокая, но оценить размер пула может быть сложно.
Я думаю, что большинство аллокаторов используют второй метод, но я не могу найти доказательства этого.
Знаете ли вы, какой распределитель использует какой метод? Есть ли какой-то стандарт по этому поводу?