__thread Foo foo;
Comment "foo" est-il réellement résolu? Est-ce que le compilateur remplace silencieusement chaque instance de "foo" par un appel de fonction? "Foo" est stocké quelque part par rapport au bas de la pile, et le compilateur stocke cela comme "hé, pour chaque thread, avoir cet espace près du bas de la pile, et foo est stocké comme" offset x du bas de la pile " "?Implémentation de stockage local de threads Linux
Je peux voir comment cela fonctionne si j'ai multi-threads mais un seul noyau. Quand j'ai multi-threads et multi-core, comment fonctionne cette section .tdata? – anon
@anon: Quelles différences voyez-vous dans votre deuxième cas? –
heure 01: le noyau 1 exécute le fil 1; permute dans le fil 1 .tdata; temps 02: le noyau 2 exécute le filetage 2; permute dans le fil 2 .tdata; Maintenant, thread1 n'est pas soudainement en utilisant .tdata de thread2? – anon