我正在努力“真正”理解流程&线程 - 我已经阅读过有关它们的书籍和文章,但整体情况似乎总是缺少一些东西。当然,我可以喋喋不休地谈论每个进程如何拥有自己的内存空间以及属于同一进程的线程如何共享相同的内存空间等细节,但我正在寻找来自操作系统和操作系统的内容。内存视角我想 - 比如:
所有这些使用简单的代码示例都会非常棒。 非常感谢。
答案 0 :(得分:0)
进程使用执行它所需的所有资源(内存,打开文件,共享内存)封装代码。线程只是进程中的执行,这意味着大致是线程当前指令和调用堆栈的指针。进程至少包含一个线程,但您可以在一个进程中拥有多个线程。
fork
(几乎所有内容都是重复的)。产生线程既是语言也是OS(存在从语言线程到OS线程的映射)。 C API包含pthread_create
,只为它分配一个新的堆栈,初始化指向某个函数的地址的指令指针。