Uso de registradores pelo compilador no programa multiencadeado

É uma questão geral, mas:

Em um programa multithreaded, é seguro para o compilador usar registradores para armazenar temporariamente variáveis ​​globais?

Eu acho que não, já que armazenar variáveis ​​globais em registradores pode alterar os valores salvos para outros threads.

E que tal usar registros para armazenar variáveis ​​locais definidas dentro de uma função?

Eu acho que está tudo bem, já que nenhum outro thread será capaz de obter essas variáveis.

Por favor me corrija se eu estiver errado. Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion