在支持多线程的操作系统中,假设进程P创建了若干个线程,那么(47)是不能被其他线程共享的。
(47)A.该进程的代码段 B.该进程中打开的文件
C.该进程的全局变量 D.该进程中线程的栈指针
【答案】D
【解析】
同一进程间的线程共享的资源包括:
1、堆:由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的。
2、全局变量:它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的
3、静态变量:虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的。
4、文件等公用资源:使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。
独享的资源有:
1、栈:每个线程中的栈都是由线程自身独享的。
2、寄存器:每个线程执行指令时,都要用到寄存器,线程间的寄存器并不共享。