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 :
Puis il explique qu'un membre static peut etre partagé entre les 2 Threads :The CLR assigns each thread its own memory stack so that local variables are kept separate.
Mais alors, si chaque thread a sa propre memory stack, comment se fait-il qu'ils puissent se partager un membre statique ou non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"); } } }
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.
Partager