Книга: Системное программирование в среде Windows
Локальная и глобальная память
Локальная и глобальная память
Суть другого требования, предъявляемого к корректному многопоточному коду, состоит в том, что глобальная память не должна использоваться для локальных целей. Так, применение функции ThFunc, приводившейся ранее в качестве примера, будет необходимым и уместным в тех случаях, когда поток должен располагать собственным экземпляром N. N может быть использовано для хранения временных результатов или размещения аргумента функции. Если же N размещается в глобальной памяти, то все процессы будут разделять единственный экземпляр N, что может стать причиной некорректного поведения программы, как бы тщательно вы ни планировали синхронизацию доступа к этой переменной. Ниже приводится пример подобного некорректного использования N. N должно быть локальной переменной, размещаемой в стеке функции потока.
DWORD N;
DWORD WINAPI ThFunc (TH_ARGS pArgs) {
…
N = 2 * pArgs->Count; …
}
- Часть IV Сеть: локальная и Глобальная
- Видеопамять
- 7.3.2. EEPROM и флэш-память
- Что хранит в себе оперативная память
- ЧАСТЬ 4 РАЗДЕЛЯЕМАЯ ПАМЯТЬ
- Глава 8 Оперативная память
- Кэш-память ЦП
- При запуске программы появляется сообщение Инструкция по адресу 0х77ddb1d1 обратилась к памяти по адресу 0x0080002c. Пам...
- 1.1.4. Локальная сеть
- 12.6. Обращение к объектам, отображенным в память
- 1.6.1. Как устроена оперативная память ПК?
- Как у вас с памятью?