线程通常被定义为轻量级进程,因为操作系统维护线程的数据结构比进程更小。
我有两个问题:
我的理由:因为每个线程只有堆栈和寄存器不同,所以(1)为真,(2)为假。
这是对的吗?
修改:这是原始问题
线程通常被定义为"轻量级过程"因为一个 操作系统(OS)维护线程的较小数据结构 而不是一个过程。与此相关,以下是以下哪项 TRUE?
(A)在每个线程的基础上,操作系统只维护CPU寄存器状态
(B)操作系统不为每个线程维护单独的堆栈
(C)在每个线程的基础上,操作系统不维护虚拟内存状态
(D)在每个线程的基础上,操作系统只维护调度和 会计信息
答案 0 :(得分:4)
线程与其所属的进程共享其虚拟内存。这使得我们在多线程中常见的所有结构成为可能,我们只需通过写入变量就可以在线程之间交换数据。
这也意味着线程更快启动,因为操作系统不需要加载/设置二进制映像,运行初始化代码等,就像它对单独的进程一样(用例如fork(2)
创建)。 / p>
但是,线程是操作系统CPU调度程序的独立单元,因此操作系统确实为每个线程保留了单独的调度信息。