Локальная и глобальная память

Локальная и глобальная память

Суть другого требования, предъявляемого к корректному многопоточному коду, состоит в том, что глобальная память не должна использоваться для локальных целей. Так, применение функции ThFunc, приводившейся ранее в качестве примера, будет необходимым и уместным в тех случаях, когда поток должен располагать собственным экземпляром N. N может быть использовано для хранения временных результатов или размещения аргумента функции. Если же N размещается в глобальной памяти, то все процессы будут разделять единственный экземпляр N, что может стать причиной некорректного поведения программы, как бы тщательно вы ни планировали синхронизацию доступа к этой переменной. Ниже приводится пример подобного некорректного использования N. N должно быть локальной переменной, размещаемой в стеке функции потока.

DWORD N;

DWORD WINAPI ThFunc (TH_ARGS pArgs) {

 …

 N = 2 * pArgs->Count; …

}

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

5.2. Глобальная система пространственных фреймов

Из книги автора

5.2. Глобальная система пространственных фреймов Мне не очень нравится предлагаемая ниже модель, но для систем ИИ раньше или позже нечто подобное непременно потребуется разработать. Глобальный пространственный фрейм (GSF) представляет собой постоянный набор «типичных


1.1.4. Локальная сеть

Из книги автора

1.1.4. Локальная сеть Взлом в локальной сети может быть проще по многим причинам:? компьютеры подключены по скоростному соединению от 10 Мбит и выше;? есть возможность прослушивать трафик других компьютеров в сети;? можно создавать подставные серверы;? очень редко


D.2.2 Локальная сеть малого офиса

Из книги автора

D.2.2 Локальная сеть малого офиса Предположим, что организация имеет 100 филиалов и каждому из них требуется от 30 до 40 адресов. Чтобы обезопасить себя, выбираем 10-битовую маску подсети, которая поддержит 62 хоста на каждом сайте. Для адресов от 130.15.101 мы получим четыре


D.2.3 Большая локальная сеть

Из книги автора

D.2.3 Большая локальная сеть Наконец, предположим, что существует шесть больших локальных сетей. Мы хотим обеспечить соединение каждой из них с 500 хостами. Подойдет 7-битовая маска подсети (см. раздел D.1.1). Типичная 7-битовая подсеть содержит диапазон адресов, подобный


3.3. Программа rpm: локальная установка пакетов

Из книги автора

3.3. Программа rpm: локальная установка пакетов 3.3.1. Немного истории Раньше, когда не было Интернет-репозиториев, во всех RH-совместимых дистрибутивах для установки, удаления и обновления пакетов использовалась программа rpm. RPM (аббревиатура oт Red hat Package Manager) - это один из самых


1.4. Локальная анонимность

Из книги автора

1.4. Локальная анонимность Часто пользователям бывает все равно, следит ли за ними грозный администратор или кто-либо еще. Главное, чтобы коллеги по работе или родственники не видели, какие сайты посещались с их локального компьютера.Просто очистить историю посещений


8.1.1. Локальная область видимости

Из книги автора

8.1.1. Локальная область видимости Локальная область видимости – это часть исходного текста программы, содержащаяся в определении функции (или блоке внутри тела функции). Все функции имеют свои локальные области видимости. Каждая составная инструкция (или блок) внутри


10.5. Глобальная сеть Интернет

Из книги автора

10.5. Глобальная сеть Интернет Зарождением Интернета принято считать момент появления первой компьютерной сети, родиной которой в середине 60-х годов двадцатого века стала Америка.В то время еще не существовало персональных компьютеров, и крупные американские


Глава 4. Глобальная сеть — место больших возможностей

Из книги автора

Глава 4. Глобальная сеть — место больших возможностей Никто не станет спорить, что Интернет прочно вошел в нашу жизнь. Он предоставляет в наши руки огромные возможности по передаче информации. Но Интернет стал также и полигоном для испытания самых грозных форм


Глобальная структура наследования

Из книги автора

Глобальная структура наследования Ранее мы уже ссылались на универсальные (universal) классы GENERAL и ANY, а также на безобъектный (objectless) класс NONE. Пришло время пояснить их роль и представить глобальную структуру


Часть IV Сеть: локальная и Глобальная

Из книги автора

Часть IV Сеть: локальная и Глобальная Понятие локальной сетиПроводная сетьБеспроводная сетьПодключение к локальной сетиПодключение к


Проводная локальная сеть

Из книги автора

Проводная локальная сеть В настоящее время наиболее популярным сетевым соединением является подключение по проводной локальной сети. Соответствующие сетевые карты уже давно встраиваются в ноутбуки. Некоторые из них поддерживают обмен данными даже со скоростью до 1000


Глобальная система управления народным хозяйством

Из книги автора

Глобальная система управления народным хозяйством В январе 1959 года А. И. Китов посылает в ЦК КПСС новаторский документ (известный как «Первое письмо А. И. Китова Н. С. Хрущёву») (подробнее об этом см. [5.17]), содержащий кардинальные предложения о направлениях полномасштабного