2016-06-21 14 views
-2

Eigentlich wurde ich diese Frage kürzlich in einem Interview gestellt, ich antwortete Stack, bin ich richtig, da ich dachte, dass Threads Methoden ausführen würden, aber könntest du bitte erklären, warum Threads im Stack erstellt werden oder wenn nicht, warum dann erstellt wird im Haufen.Wo ein Thread-Objekt im Stapel oder im Heap-Speicher erstellt wird?

Vielen Dank im Voraus

+4

Der folgende Link kann Ihre Zweifel klären: http://stackoverflow.com/questions/19433523/where-is-thread-object-created-stack-or-heap –

+1

Alle Objekte werden auf Heap erstellt, einschließlich 'Thread' Objekte. – Kayaman

+1

Ein Thread-Objekt wird immer auf dem Heap erstellt (es sei denn, es wurde nicht gestartet) Die meisten Objekte werden auf dem Heap erstellt (wie es ist) aber in einigen Fällen, wenn ein Objekt von Escape Analysis ermittelt werden kann nicht einer Methode entkommen, kann es das Objekt auf dem Stapel platzieren. Im Falle von Thread ist dies nicht möglich, es sei denn, es wird nicht gestartet. –

Antwort

0

Der wesentliche Unterschied zwischen Heap Speicher und Stapel Speicher ist, dass Stapelspeicher lokale Variablen zu speichern, verwendet wird und die Funktion aufruft, während Heap-Speicher-Objekte verwendet wird, in Java zu speichern. Egal wo das Objekt im Code erstellt wird.

So Thread Objekte in Heap gespeichert.

Auch Jeder Thread hat seinen eigenen Stapel, um eigene lokale Variablen und Funktionsaufrufe zu halten.