0

众所周知,在多个线程的情况下,每个线程都维护其单独的堆栈和寄存器状态。

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

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

编辑 :

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

4

3 回答 3

4

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

于 2012-06-26T19:25:50.720 回答
0

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

(对于初学者,请查看“多线程”标签。)但是多线程可以让您监听许多不同的输入,并且它们可以让您让所有这些 CPU 内核赢得他们的保留。

于 2012-06-26T19:51:37.567 回答
0

没错,两个线程可以共享同一个虚拟内存空间。这本质上(非常肤浅)是线程与进程相关的定义。

于 2012-06-26T19:03:54.723 回答