__thread Foo foo;
¿Cómo se resuelve realmente "foo"? ¿El compilador reemplaza silenciosamente cada instancia de "foo" con una llamada a función? Es "foo" almacenado en algún lugar en relación con la parte inferior de la pila, y el compilador almacena esto como "hey, para cada hilo, tiene este espacio cerca de la parte inferior de la pila, y foo se almacena como 'desplazamiento x desde el fondo de la pila' "¿?"Implementación de almacenamiento local de subprocesos de Linux
Puedo ver cómo funciona esto si tengo múltiples hilos pero solo un núcleo. Cuando tengo multi hilos y multi core, ¿cómo funciona esta sección .data? – anon
@anon: ¿Qué diferencias ves en tu segundo caso? –
tiempo 01: el núcleo 1 ejecuta el hilo 1; swaps en el hilo 1 de .data; tiempo 02: core 2 ejecuta thread 2; swaps en los hilos .data de los hilos 2; ¿Ahora no está thread1 de repente usando .tdata de thread2? – anon