Welche der folgenden Komponenten des Programms Staat geteilt wird, mehrere threads in einem Multithread-Prozess?
- Register Werte
- Heap-Speicher
- Globale Variablen
- Stack-Speicher
Mein Vorschlag; Nur Globale Variablen, Globale Variablen sind reserviert auf dem heap? Also Heap-Speicher, Globale Variablen. Ist das richtig?
Heap-Speicher immer.
Globale Variablen hängt von der Plattform, Sie sind in der Regel geteilt.
Stack von thread-spezifischen, sowie Register.
Es hängt von der Sprache und der thread-Implementierung. Zum Beispiel, ich glaube nicht, dass auch C können Sie direkt Zugriff auf die CPU-Register, so ist es eher fraglich, ob, sagen wir, pthreads Aktien registriert (die für das Protokoll, ich bin mir ziemlich sicher es nicht). Auch in C sind Globale Variablen nicht in der Tat dem heap zugeordnet, obwohl Sie vielleicht in anderen Sprachen.
Dem Stapel ist komplizierter. In C/pthreads, jeder thread hat seinen eigenen stack, sondern auch in anderen Sprachen und threading-Modell, könnte die situation viel komplizierter, einfach weil die zugrunde liegende stack-Modelle nicht so einfach.
stack : keine
Register: Nein
heap: ja (wenn Sie zu wählen haben, werden y oder n, die Antworten ist es abhängig)
globals: ja
Den Globalen Werten und heap-Speicher in einem Multithread-Prozess. Register und stack-Speicher, sind privat für jeden thread.