jvm线程问题
来源:3-5 Java 泛型的实现机制是怎样的?

用户1148542
2019-07-25
请教下老师jvm内存模型中分5大块,像堆和方法区在线程共享,二其他三块在线程私有里面,请问下什么在jvm中什么是线程共享,线程私有
写回答
1回答
-
bennyhuo
2019-07-25
说的没错,堆内存方法区都是共享的,方法调用栈是私有的。
讨论一个实际的例子,方法内部定义的引用是在栈上,引用指向的对象在堆上,其实这部分通常因为其他线程语法访问线程私有的栈,因而也无法拿到指向的堆内存,但如果在方法中切换线程,例如启动Thread,那么Thread的run会有机会访问外部的局部变量,这时候尽管不能修改外部方法栈,但可以修改外部栈指向的对象,因为堆是共享的。
082022-02-03
相似问题