在支持多线程的操作系统中,假设进程 P 创建了线程 T1、T2 和 T3,那么下列说法正确的是(2)。
单选题
在支持多线程的操作系统中,假设进程 P 创建了线程 T1、T2 和 T3,那么下列说法正确的是(2)。
A. 该进程中已打开的文件是不能被 T1、T2 和 T3 共享的
B. 该进程中 T1 的栈指针是不能被 T2 共享的,但可被 T3 共享
C. 该进程中 T1 的栈指针是不能被 T2 和 T3 共享的
D. 该进程中某线程的栈指针是可以被 T1、T2 和 T3 共享的
答案:C
解析
答案:C
线程是进程内的执行单元,拥有独立的执行上下文:程序计数器、寄存器组、栈和栈指针等。因此,T1 的栈指针只属于 T1,不能被 T2、T3 共享,C 正确。
- A 错:已打开文件属于进程资源,T1、T2、T3 共享同一文件描述符表。
- B 错:栈指针是线程私有上下文,不能被 T2 共享,也不能被 T3 共享。
- C 对:每个线程有独立栈,栈指针随线程切换保存和恢复。
- D 错:不存在让所有线程共享某线程栈指针的常规机制。
延伸:线程共享代码段、数据段、堆、文件等;线程私有栈、寄存器、PC、线程局部存储。面试常考“线程共享/私有资源”的区分。