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.









Répondre avec citation
Partager