Как Java (JVM) выделяет стек для каждого потока
Приложение Java запускается с одной кучей для всех потоков. Каждый поток имеет свой собственный стек.
Когда Java-приложение запускается, мы используем опцию JVM-Xms
а также-Xmx
контролировать размер кучи и-Xss
контролировать размер стека.
Насколько я понимаю, создаваемая куча становится «управляемой» памятью JVM, и все создаваемые объекты помещаются туда.
Но как работает создание стека? Создает ли Java стек для каждого потока при его создании? Если да, то где именно стек находится в памяти? Это конечно не в "управляемой" куче.
Создает ли JVM стек из собственной памяти или предварительно выделяет часть области управляемой памяти для стека? Если так, как JVM знает, как могут создаваться потоки?