По умолчанию Windows блокирует кучу при использовании функций кучи Win API.
Вы можете управлять блокировкой, по крайней мере, во время создания кучи.Различные компиляторы и среды выполнения C делают разные вещи с семьей malloc / free.Например, API SmartHeap в один момент создавал одну кучу на поток и поэтому не нуждался в блокировке.Существовали также опции конфигурации для включения и выключения этого поведения.
В какой-то момент в начале / середине 90-х годов компиляторы Borland для Windows и OS / 2 явно отключали блокировку кучи (ошибка преждевременной оптимизации) до несколькихтемы были начаты с beginthread.Многие пытались порождать потоки с помощью вызова OS API, а затем были удивлены, когда куча повредила себя до чертиков ...