Wie haben zwei oder mehrere threads teilen Speicher auf dem heap, die Sie reserviert haben?

Wie der Titel sagt, wie zwei oder mehrere threads teilen Speicher auf dem heap, die Sie reserviert haben? Ich habe darüber nachgedacht, und ich kann nicht herausfinden, wie Sie es tun können. Hier ist mein Verständnis von dem Prozess, vermutlich bin ich irgendwo falsch.

Jedem thread können hinzufügen oder entfernen Sie eine bestimmte Anzahl von bytes auf dem heap, indem Sie ein system nennen, das gibt einen Zeiger auf diese Daten, vermutlich durch schreiben in ein register, das der thread kann dann die Kopie auf den stack.
Also zwei threads A und B zuweisen kann, wie viel Speicher, wie Sie wollen. Aber ich sehe nicht, wie Ein thread wissen konnte, wo die Erinnerung, dass thread B zugeteilt hat liegt. Noch weiß ich, wie entweder thread wissen konnte, wo die anderen thread-stack liegt. Multi-threaded-Programme teilen sich den heap und ich glaube, Sie kann ein Zugang zu anderen Stapel, aber ich kann nicht herausfinden, wie.

Ich habe versucht, die Suche für diese Frage fand aber nur sprachspezifische Versionen, abstrahieren die details.

Bearbeiten:
Ich versuche nicht zu Sprache oder OS-spezifisch, aber ich bin mit Linux und bin es bei der Suche von einem niedrigen Niveau, Perspektive, Montage, denke ich.

mögliche Duplikate von threads teilen sich den heap?
Nein, ich denke nicht so. Ich sah, dass einer während der Suche und es nicht zu Fragen, wie die threads teilen sich den heap nur, wenn Sie tun. Ich will genau wissen, wie sich threads Daten austauschen. Was ist der Mechanismus der Kommunikation? Ich denke, Sie teilen Zeiger auf den Speicher, aber ich weiß nicht, wie Sie es tun.
Wie kann ich Bearbeiten, meine Frage für beste Klarheit? Was am meisten verwirrend daran? Usr hat meine Frage beantwortet, aber ich möchte sicherstellen, dass meine Frage verständlich für andere, und jetzt es scheint nicht sehr sauber zu mir.

InformationsquelleAutor Lemma Prism | 2012-08-10

Schreibe einen Kommentar