les Threads et leur memory stack
Je suis en train de lire cet article qui explique le multithreading:
http://www.albahari.com/threading/
Je remercie encore au passage Jerede pour cet excelent lien !
Une chose que je ne comprends pas bien. L'auteur dit :
Citation:
The CLR assigns each thread its own memory stack so that local variables are kept separate.
Puis il explique qu'un membre static peut etre partagé entre les 2 Threads :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class ThreadTest
{
static bool done; // Static fields are shared between all threads
static void Main()
{
new Thread (Go).Start();
Go();
}
static void Go()
{
if (!done) { done = true; Console.WriteLine ("Done"); }
}
} |
Mais alors, si chaque thread a sa propre memory stack, comment se fait-il qu'ils puissent se partager un membre statique ou non?
Où est stocké un membre statique? Est ce que ca veut dire qu'un membre statique est stocké dans le processus et non dans le thread?
Merci d'avance pour vos explications.