是什么使一个线程与同一进程中的其他线程不同,又是什么使一个进程与其他进程不同? (我所说的独特是什么让它与众不同?)
最佳答案
每个线程都有自己的 stack ,以及它自己的执行上下文。 (堆栈是线程存储其局部变量的内存区域,执行上下文是与线程关联的各种 CPU 寄存器的状态。每当线程运行时,此状态将 loaded in 发送到 CPU 的硬件寄存器,并且每当线程暂停让另一个线程运行时,就会保存到内存中。)
每个进程都有自己的 address space 。 (进程的地址空间是从虚拟地址到物理 RAM 地址的映射——这个映射由计算机的 MMU 处理,并为该进程中的线程提供它们拥有计算机 RAM 的错觉——特别是,默认情况下一个进程不可能读取或写入另一个进程的数据,因为每个进程的虚拟地址默认映射到计算机物理 RAM 的单独部分)
请注意,每个进程都会有一个或多个线程在其中运行,并且在同一进程内运行的所有线程共享相同的地址空间,因此如果他们愿意,可以读/写彼此的数据。
关于c - 是什么让线程和进程独一无二?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49226934/