Welche der folgenden Komponenten des Programmstatus wird in Threads in einem Prozess mit mehreren Threads gemeinsam verwendet?
Mein Vorschlag; Nur globale Variablen, globale Variablen werden auf dem Heap zugeordnet? Also Heap-Speicher und globale Variablen. Ist das richtig?
Speicher immer speichern.
Globale Variablen hängen von der Plattform ab, normalerweise werden sie geteilt.
Stack ist Thread-spezifisch, ebenso wie Register.
Das hängt von der Sprache und der Thread-Implementierung ab. Zum Beispiel glaube ich nicht, dass selbst C Ihnen erlaubt, direkt auf die CPU-Register zuzugreifen, also ist es eher unstrittig, ob, sagen wir, pthreads die Register teilt (was, um es festzuhalten, ziemlich sicher ist, dass dies nicht der Fall ist). Auch in C sind globale Variablen nicht tatsächlich auf dem Heap zugeordnet, obwohl sie möglicherweise in anderen Sprachen vorliegen.
Der Stapel ist komplizierter. In C / Pthreads hat jeder Thread seinen eigenen Stack, aber in anderen Sprachen und Threading-Modellen könnte die Situation viel komplizierter sein, einfach weil die zugrunde liegenden Stack-Modelle nicht so einfach sein können.
Die globalen Werte und der Heap-Speicher werden in einem Multithread-Prozess gemeinsam genutzt. Registerwerte und Stapelspeicher sind für jeden Thread privat.
Tags und Links multithreading operating-system