Поделиться через


threadprivate

Указывает, что переменная является закрытой в поток.

#pragma omp threadprivate(var)

Заметки

Здесь:

  • var
    Список переменных с разделителями-запятыми, которые необходимо сделать закрытыми в поток. var быть либо переменной гловального или пространства имен-scoped или локальный статической переменной.

Заметки

threadprivate директива не поддерживает никаких предложений OpenMP.

Дополнительные сведения см. в разделе директива 2.7.1 threadprivate.

threadprivate директива основана на поток__declspec атрибут; ограничения on __declspec (поток) примените к threadprivate.

Нельзя использовать threadprivate в любом библиотека DLL, которая загружает посредством Функции LoadLibrary. Это включает библиотеку DLL с которыми загрузка /DELAYLOAD (загрузка импорта с задержкой), который также использует Функции LoadLibrary.

Можно использовать threadprivate в библиотеках DLL, статически загружается во время запуска процесса.

Поскольку threadprivate находит on **__declspec (поток)**a threadprivate переменная будет существовать в любом потоке запусщенном в процессе, а не только тех потоках, которые являются частью группы икренной потока параллельной области. Эти сведения реализации которого необходимо иметь в виду, поскольку можно заметить, например конструкторы, a threadprivate пользовательский тип, называемого чаще затем ожидается.

A threadprivate не гарантируется, что имеется переменная с именем destructable типа его деструктор. Примеры.

struct MyType 
{
    ~MyType();
};

MyType threaded_var;
#pragma omp threadprivate(threaded_var)
int main() 
{
    #pragma omp parallel
    {}
}

Пользователи не имеют ни один элемент управления о если потоки образовывая параллельной области. Если эти потоки, если процесс ", потоки не будут уведомление о выхода из процесса и деструктор не будет вызываться для threaded_var в любом потоке, который будет удалена одна (здесь основной поток). Поэтому код разрушение возлагать жизни на правильное threadprivate переменные.

Пример

Для образца использования threadprivateсм. private.

См. также

Ссылки

Директивы OpenMP