Wie ordnet Java (JVM) jedem Thread einen Stapel zu

Eine Java-Anwendung startet mit einem Heap für alle Threads. Jeder Thread hat einen eigenen Stack.

Wenn eine Java-Anwendung gestartet wird, verwenden wir die JVM-Option-Xms und-Xmx, um die Größe des Heapspeichers und @ zu steue-Xss, um die Stapelgröße zu steuern.

ein Verständnis ist, dass der erstellte Heap ein "verwalteter" Speicher von JVM wird und alle erstellten Objekte dort abgelegt werde

Aber wie funktioniert die Stack-Erstellung? Erstellt Java einen Stapel für jeden Thread, wenn er erstellt wird? Wenn ja, wo genau befindet sich der Stapel im Speicher? Es liegt sicher nicht im "gemanagten" Haufen.

Erstellt JVM einen Stapel aus dem nativen Speicher oder reserviert es einen Abschnitt des verwalteten Speicherbereichs für den Stapel vor? Wenn ja, woher weiß JVM, wie möglicherweise Threads erstellt werden?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage