He estado leyendo Java Concurrency in Practice de Brian Goetz y dentro de la sección Confinamiento de pila se menciona que cada subproceso tiene su propia pila y, por lo tanto, las variables locales están intrínsecamente limitadas al subproceso en ejecución; existen en la pila de subprocesos en ejecución, que no es accesible para otros subprocesos. ¿Qué quiere decir que cada hilo tiene su propia pila de ejecución?
java
multithreading
concurrency
stack
Friki
fuente
fuente
Respuestas:
¿Sabe cuándo interrumpe el depurador por cualquier razón, y el IDE le da un seguimiento de la pila? ¿Y cada método (marco de pila) tiene su propio conjunto de variables locales que puede examinar en el depurador?
Esa es la "pila de ejecución" de su programa. Muestra cómo se ve el estado local de su programa en este momento. Lo que dice el autor es que cada hilo obtiene su propia pila de ejecución distinta de esa manera. Tiene su propia pila de llamadas, y cada uno de los métodos tiene sus propias variables locales.
Como las variables se almacenan como parte de la pila de ejecución y no en el montón, son exclusivas del subproceso que se está ejecutando y no se pueden compartir directamente. Sin embargo, puede copiarlos o pasar referencias a objetos a otros hilos de varias maneras, por lo que es principalmente una distinción académica.
fuente