Brincando a noite com Python, fui estudar a fundo a PVM, e a integracao Java + Python =Jython!!Logo, ja estava me aventurando no tema concorrencia, e recordando acerca do modelo de memoria compartilhada do Java, locks, semaforos , STM ,Actors...Dai relembrei do conceito de Memoria Stack, Heap e onde a threads entram nessa historia.STACKBasicamente , na Memoria Stack cada thread(linha de execucao) da maquina virtual Java(JVM) tem uma pilha privada da propria JVM, criada ao mesmo tempo que a thread. Uma JVM(maquina virtual Java) armazena frames de memoria. Ele contem as variaveis locais e resultados parciais, e desempenha um papel na invocacao de metodo e de retorno. Ja que a JVM Stack nao e manipulada diretamente, exceto por push e pop de quadros, quadros tambem podem ser alocados na heap. A memoria para uma JVM Stack nao precisa ser contigua.A especificacao Java maquina virtual permite que as pilhas da maquina virtual Java ou ter um tamanho fixo ou dinamicamente expandir o contrato de acordo com o exigido pela computacao. Se a JVM Stack tiverem um tamanho fixo, o tamanho de cada JVM Stack pode ser escolhido independentemente quando essa Stack e criada. A implementacao da maquina virtual Java pode fornecer ao programador ou ao utilizador o controle do tamanho inicial das pilhas da maquina virtual Java, bem como, no caso de expansao dinamica ou contracao das JVMS Stack's, modificando o controle sobre os tamanhos maximos e minimos.As seguintes condicoes excepcionais estao associados com as pilhas da maquina virtual Java: Se o calculo em um segmento exige um maior JVM Stack do que e permitido, a maquina virtual Java gera um StackOverflowError. Se o tamanho das JVM Stack's pode ser expandido de forma dinamica, a expansao pode ser feita, mas a memoria insuficiente pode ser disponibilizada para o efeito da expansao, ou se a memoria insuficiente for disponibilizada para criar a JVM Stack incial de uma thread, a JVM lanca um OutOfMemoryError*1 Heap A maquina virtual Java tem uma pilha que e compartilhado entre todas as threads da maquina virtual Java. A pilha e a area de dados de tempo de execucao a partir do qual a memoria de todas as instancias de classes e arrays sao atribuidas.A Heap(Tipo de Fila de Prioridade) e criada no start da JVM. Um Heap de armazenamento de objetos e recuperado por um sistema automatico de gerenciamento de armazenamento (conhecido como um coletor de lixo(garbage collector); objetos nunca sao explicitamente liberados*2.A maquina virtual Java nao assume qualquer tipo especifico de sistema automatico de gerenciamento de armazenamento(garbage collector), e a tecnica de gerenciamento de armazenamento pode ser escolhida de acordo com os requisitos do implementador do sistema*3.A Heap pode ser de um tamanho fixo ou pode ser expandida conforme exigido pela computacao e pode ser expandido se uma maior pilha torna-se desnecessario. A memoria para a Heap nao precisa ser contigua.A pilha de objetos, armazena principalmente objetos ou variaveis de classe.A seguinte condicao excepcional esta associado com a Heap:Se um calculo requer mais memoria Heap do que pode ser disponibilizado pelo sistema automatico de gerenciamento de armazenamento, a