首页 > 试题广场 >

多线程中栈与堆是公有的还是私有的()

[单选题]
多线程中栈与堆是公有的还是私有的()
  • 栈公有,堆私有
  • 栈公有,堆公有
  • 栈私有,堆公有
  • 栈私有,堆私有
堆在一起的东西,肯定是公用(公有)的,你占(栈)有的东西,肯定是你自己私有的。
上面纯属娱乐,不过容易记忆。
编辑于 2018-06-27 23:28:22 回复(1)
在多线程环境下,每个线程拥有一个栈和一个程序计数器。栈和程序计数器用来保存线程的执行历史和线程的执行状态,是线程私有的资源。其他的资源(比如堆、地址空间、全局变量)是由同一个进程内的多个线程共享
发表于 2015-12-23 15:09:37 回复(0)
堆主要是动态静态分配内存空间,内存空间在内部环境是统一编址的,不会因为多了一个对象而复制另一块独立的内存空间给实例对象,而栈是存储临时变量等的,有一定生命周期,是多线程独立的。
发表于 2015-11-03 13:41:33 回复(0)
线程拥有的少量资源:程序计数器、寄存器和栈
发表于 2017-08-20 17:18:22 回复(0)
炫头像
可以理解为堆是全局性的,栈是局部性的
发表于 2016-03-29 14:01:20 回复(0)
可以结合stringBuilder来理解


发表于 2016-11-06 18:45:30 回复(0)
1.栈的私有性:在多线程环境下,每个线程都独自拥有一个栈。这个栈是线程私有的资源,用于保存该线程的执行历史和执行状态。具体来说,栈中存储了线程的局部变量、方法调用等信息。由于栈的这种私有性,不同线程之间的栈是互相隔离的,一个线程无法访问另一个线程的栈。
2.堆的公有性:与栈不同,堆是由同一个进程内的多个线程共享的。堆用于存储进程中的全局变量、静态变量以及动态分配的内存(如通过mallocnew等函数或操作符分配的内存)。由于堆的这种公有性,多个线程可以同时访问和操作堆中的内存。
发表于 2024-10-27 16:06:46 回复(0)
太模糊了这题,全是背板的,用户线程栈都在一个地址空间,相互访问当然可以,只是地址的获取比较困难,如果这个叫私有的话
那么windows下某线程HeapCreate创建的堆,其余线程也需要一定方法才能获取句柄,那么这个堆是不是可以说是私有的?
这题我真给不出答案
发表于 2018-02-08 11:03:47 回复(0)
在多线程环境下,每个线程拥有一个栈和一个程序计数器。栈和程序计数器用来保存线程的执行历史和线程的执行状态,是线程私有的资源。其他的资源(比如堆、地址空间、全局变量)是由同一个进程内的多个线程共享
发表于 2017-04-20 20:17:32 回复(0)