Локальная память потока |
Автор: admin Просмотров: 1939 Комментарии:
Добавлен: 26 января 2017
Обновлено: 26.01.2017 - 19:45
Локальная память потока (англ. Thread-local storage) - механизм, с помощью которого в каждом отдельном потоке выполнения могут использоваться собственные копии глобальных и статических переменных.
Это бывает полезным в некоторых случаях, так как все потоки разделяют одну и ту же память своего процесса. Иными словами, данные, размещенные в статических или глобальных переменных, обычно всегда находятся в одном месте, если к ним обращаются потоки одного процесса. Однако переменные расположены в стеке являются уникальными для потока, поскольку каждый поток имеет свой стек, размещенный в отдельном блоке памяти.
Иногда нужно, чтобы два потока, обращающихся к какой-то глобальной переменной, на самом деле обращались к различным местам в памяти, таким образом делая переменную локальной для потока. Каноническим примером является переменная кода ошибки errorno языка C.
Варианты реализации
C/C++Ключевое слово __thread используется так:
__thread int number;
__thread определяет number как локальную переменную потока.
int определяет тип переменной number как целочисленный тип int .
GCC
GCC C / C ++ реализует __thread как показано ниже.
Переменная должна быть инициализирована константой на этапе компиляции:
__thread int number = 1;
но не
void f (int number) {
static __thread int number_copy = number;
или (C ++)
__thread int number = calculate_number ();
Библиотека pthread предусматривает прямые конструкции для сохранения локальных данных потока.
Python
На Python версий 2.4 или более поздних класс local из модуля threading может быть использован для создания локального хранилища потока.
import threading
mydata = threading . local ()
mydata . x = 1
https://uk.wikipedia.org/wiki/Локальна_пам%27ять_нитей
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Я уже пять лет не занимаюсь сайтом, так как работаю по 12 часов. Образование у меня среднее, и по этому нет нормальной работы. Если бы сайт приносил по 100$ в месяц, я бы добавлял по 50 статей каждый месяц. Если отправите пожертвования, я оставлю Ваши имена и фамилии в списке благодетелей !
Bitcoin: 1AP3JCZVFpHzZwcAyNztbrbFFiLdnKbY1j
Litecoin LfHXHz4k6LnDNNvCodd5pj9aW4Qk67KoUD
Dogecoin D9HHvKNFZxRhjtoh6uZYjMjgcZewwiUME9
Есть также другие кошельки.
Категория: Компьютерные советы
Комментарии |