threadprivate
Especifica que uma variável é privativo de um thread.
#pragma omp threadprivate(var)
Comentários
onde,
- var
Uma lista separada por vírgulas de variáveis que você deseja tornar particulares a um thread.vardeve ser uma variável global ou namespace-escopo ou uma variável estática local.
Comentários
O threadprivate diretiva oferece suporte a cláusulas sem OpenMP.
Para obter mais informações, consulte 2.7.1 diretiva de threadprivate.
O threadprivate diretiva se baseia o thread__declspec de atributo; limita em __declspec(thread) se aplicam a threadprivate.
Não é possível usar threadprivate em qualquer DLL que será carregado por meio de LoadLibrary.Isso inclui DLLs carregadas com / Executar delayload em (importação de carregamento de atraso), que também utilize LoadLibrary.
Você pode usar threadprivate em uma DLL que é carregada estaticamente na inicialização do processo.
Porque threadprivate se baseia em __declspec(thread), um threadprivate variável existirá em qualquer thread iniciado no processo, não apenas a segmentos que fazem parte de uma equipe de thread gerada por uma região paralela.Este é um detalhe de implementação que convém estar ciente, desde que você pode observar, por exemplo, construtores para um threadprivate tipo definido pelo usuário chamado mais freqüentemente e esperado.
A threadprivate variável de um tipo de destructable não é garantido para ter seu destruidor chamado.Por exemplo:
struct MyType
{
~MyType();
};
MyType threaded_var;
#pragma omp threadprivate(threaded_var)
int main()
{
#pragma omp parallel
{}
}
Os usuários não têm controle para quando os threads que constitui a região paralela terminará.Se desses segmentos existirem quando o processo for encerrado, os segmentos não serão notificados sobre a saída de processo e o destruidor não será chamado para threaded_var em qualquer segmento, exceto aquele que sai (aqui, o segmento principal).Portanto, o código não deve contar com destruição adequada de threadprivate variáveis.
Exemplo
Para obter um exemplo do uso de threadprivate, consulte particular.