Дополнительные кучи Win32 процесса.

Создаются по следующим причинам:

1. для защиты компонентов кучи.

2. для более эффективного управления памятью.

3. для локализации доступа.

Рассмотрим вариант 1. Пусть есть 2 потока:

A3 … B1   A2 B2 B3 A1


Thread1 – Func1 – A

Thread2 – Func2 – B

 


куча

 


Имеется ошибка в программном коде Func1, которая приводит к тому, что после заполнения А1 записывается несколько дополнительных байт. Будут запорчены данные В3.

Программист сделает предположение, что ошибка в коде функции Func2. А если бы использовались 2 разные кучи, то локализовать ошибку легче.