Java 中堆和栈有什么不同? 迷失技术de小猪 3个月前 多线程 46 每个线程都有自己的栈内存,用于存储本地变量,方法参数和栈调用,一个线程中存储的变量对其它线程是不可见的。而堆是所有线程共享的一片公用内存区域。 对象都在堆里创建,为了提升效率线程会从堆中弄一个缓存到自己的栈,如果多个线程使用该变量就可能引发问题,这时 volatile 变量就可以发挥作用了,它要求线程从主存中读取变量的值。 回复 我来回复 暂无回复内容 请 登录 或者 注册 后回复。 相关问题 什么是守护线程?有什么用? 3个月前 0 74 ThreadLocal 是什么?有什么应用场景? 3个月前 0 49 新建 T1、T2、T3 三个线程,如何保证它们按顺序执行? 3个月前 0 70 Runnable 和 Thread 用哪个好?、 3个月前 0 66 怎么控制同一时间只有 3 个线程运行? 3个月前 0 70 什么是原子性、可见性、有序性? 3个月前 0 49 线程同步需要注意什么? 3个月前 0 48 不可变对象对多线程有什么帮助? 3个月前 0 66 什么是自旋锁? 3个月前 0 85 什么是死锁?如何避免死锁? 3个月前 0 62