首页 > 试题广场 >

同一进程的各个线程可以共享哪些内容?

[单选题]
同一进程的各个线程可以共享哪个内容?
  • 寄存器内容
  • 线程私有数据
由所有线程共享的数据区是:方法区和堆
发表于 2015-09-08 10:07:10 回复(0)
线程和进程资源比较

进程占有的资源

线程占有的资源

地址空间 
全局变量 
打开的文件 
子进程 
信号量 
账户信息

栈 
寄存器 
状态 
程序计数器


发表于 2015-09-07 22:04:09 回复(2)
线程占有的都是不共享的:栈   、 寄存器、 状态、 程序计数器
发表于 2015-09-07 22:09:23 回复(0)
堆: 是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程初始化的时候分配,运行过程中也可以向系统要额外的堆,但是记得用完了要还给操作系统,要不然就是内存泄漏。

栈:是个线程独有的,保存其运行状态和局部自动变量的。栈在线程开始的时候初始化,每个线程的栈互相独立,因此,栈是 thread safe的。操作系统在切换线程的时候会自动的切换栈,就是切换 SS/ESP寄存器。栈空间不需要在高级语言里面显式的分配和释放。
发表于 2016-01-04 22:55:15 回复(0)
总结一下确实不会
进程占有的资源:地址空间,全局变量,打开的文件,子进程,信号量,账户信息
线程占有的资源:栈,寄存器,状态,程序计数器
最后关键:线程占有的资源不会共享,所以堆是共享的
发表于 2015-10-08 11:16:52 回复(0)
线程和进程资源比较

进程占有的资源

线程占有的资源

地址空间 
全局变量 
打开的文件 
子进程 
信号量 
账户信息

栈 
寄存器 
状态 
程序计数器

发表于 2017-04-19 20:14:59 回复(0)
共享的有堆,全局变量,静态变量等
发表于 2015-09-08 09:31:01 回复(1)
内存空间: 所有线程在同一进程内共享同一内存空间。这意味着它们可以访问相同的全局变量、静态变量和堆内存中的数据。
代码段: 所有线程可以访问同一进程的代码段,即可执行的程序代码。这使得线程可以执行相同的程序逻辑。
打开的文件: 如果一个线程打开了文件,其他线程也可以访问该文件的数据。
共享资源: 进程中的线程可以共享一些资源,如打开的文件描述符、网络连接、数据库连接等。
信号处理: 进程中的所有线程共享信号处理程序。当进程收到信号时,所有线程都会受到影响。
进程状态: 所有线程共享同一进程的状态,包括进程的运行状态、优先级等。
发表于 2023-08-25 17:38:53 回复(0)
堆是大家共有的,分为全局堆和局部堆;
栈、寄存器、状态、 程序计数器是每个线程私有的,不能共享;
发表于 2021-03-09 14:10:06 回复(0)
B
发表于 2020-10-11 11:43:40 回复(0)
1. 内核数据结构分配的单位是进程,如页表,打开文件表 ,FAT 等。
2. 进程拥有一个逻辑地址空间,以及进程间通信的一些资源。进程层次的用户栈。
3. 线程层次单独拥有的栈,寄存器,状态,程序寄存器,以及一些私有数据。
发表于 2019-01-24 11:31:33 回复(0)
栈是每个线程独有的, 还有寄存器  ,程序计数器。  堆是共享的;
发表于 2017-09-03 22:34:47 回复(0)
平时说的堆栈一般指栈,包括XX教程以及XXX教程.
发表于 2016-11-18 08:57:36 回复(0)
每个线程私有的资源有:栈,寄存器,程序计数器,还有状态(线程的状态??) 总之,线程私有的这几个都是不共享的
编辑于 2016-06-09 08:46:10 回复(0)
共享父进程的各种资源  如  地址空间  堆    变量  等
发表于 2016-04-17 20:38:16 回复(0)
PC寄存器,Java栈,本地方法栈是每个线程独自拥有的;
Java堆,方法区域,运行常量池是所有线程共有的。
发表于 2015-09-08 22:15:33 回复(0)