线程虚拟内存状态

时间:2012-06-26 18:51:11

标签: multithreading operating-system virtual-memory

众所周知,在多个线程的情况下,每个线程都会保持它的独立堆栈和寄存器状态。

他们是否也维护单独的虚拟内存状态或者可以共享?

我不认为在进程之间共享虚拟内存状态应该有任何问题。

编辑:

如果线程没有维护状态,为什么链接(http://www.geeksforgeeks.org/archives/19913)上问题1的第三个选项不正确?

3 个答案:

答案 0 :(得分:4)

每个进程都有自己的 地址空间 ,也就是进程可以访问的虚拟地址范围。每个进程可以有多个线程。所以,是的,进程中的所有线程共享相同的地址空间。请注意,这是在没有任何特殊机制的情况下,可以在同一进程的多个线程之间共享变量的主要原因 另一方面,如果不使用 进程间通信 等特殊机制,则无法在两个单独的进程中共享变量,因为每个进程都有自己的地址空间。

答案 1 :(得分:0)

正确,两个线程可以共享相同的虚拟内存空间。这基本上(非常表面地)是与进程相关的线程定义。

答案 2 :(得分:0)

他们总是分享记忆。它可以而且确实会导致很多的问题。

(对于初学者来说,检查“多线程”标签。)但是多个线程可以让你监听许多不同的输入,让你可以让所有这些CPU核心获得保留。