Ответ
В Android-процессе может быть только один основной стек (main stack), но при использовании многопоточности каждый поток имеет свой стек вызовов.
Пример:
Thread {
// У этого потока свой стек вызовов
println("Thread stack")
}.start()
Нюансы:
- Главный поток (
main/UI thread) имеет свой стек. - Фоновые потоки (
worker threads) создают отдельные стеки. - Размер стека по умолчанию ~8 МБ (может меняться в зависимости от устройства).
- Стек переполняется при глубокой рекурсии или бесконечных вызовах (
StackOverflowError).