首页 > 试题广场 >

线程的那些资源可以共享()

[不定项选择题]
线程的那些资源可以共享()
  • 静态变量
  • 存储器
a. 堆  由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)
b. 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的
c. 静态变量 虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的
d. 文件等公用资源  这个是共享的,使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。
独享的资源有
发表于 2019-05-29 16:00:48 回复(0)
线程是CPU调度最小单位,每个线程都有它自己的一组CPU寄存器,称为线程的上下文。
发表于 2019-07-04 12:26:12 回复(0)
线程的存储器资源已经分配完毕,不能共享。
发表于 2020-03-07 11:01:10 回复(0)
堆区:允许程序在运行时动态地申请某个大小的内存。
栈区:由编译器自动分配释放,存放函数的参数值局部变量等值。其操作方式类似于数据结构中的栈。
全局区:全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后有系统释放。
每个线程都有自己的一组CPU寄存器
发表于 2021-05-09 10:12:03 回复(0)
1、每一个进程都有一个运行时堆(operation heap),此堆在本进程内的所有线程面前是公开的,也就是向此进程内的每个线程共享。
    每一个线程独有一个栈(stack),每个线程之间的栈不共享,用于存储线程状态和局部变量。
2、全局变量存储于进程的堆中,因此也是共享的。
3、静态变量其存放位置也是在heap中,其存放数据在堆中开辟的.bss和.data段,是共享的。
4、文件等公用资源
发表于 2022-06-23 17:13:24 回复(0)
为啥存储器不行啊????
发表于 2019-12-21 11:48:30 回复(0)
寄存器应该是, 说的是寄存器那就不可共享。
发表于 2021-12-24 16:07:13 回复(0)
不同线程分配不同寄存器
发表于 2021-06-21 15:37:35 回复(0)
线程的堆和静态变量可以资源共享
发表于 2019-08-19 14:19:20 回复(0)