首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这是Process和Thread的正确类比吗?

这是Process和Thread的正确类比吗?
EN

Stack Overflow用户
提问于 2011-05-28 03:07:22
回答 1查看 1.4K关注 0票数 2

我正在尝试掌握进程、线程、MultiCore等的诀窍。所以这是我从我所学到的类比。

社会就像一台电脑。

一座建筑就像一个芯片。

特定建筑上的楼层是芯片上的核心。

因此一座建筑可以是一层楼(单芯片上的单核),

一栋楼多层(单芯片多核),

多栋建筑,每栋楼多层(多核多处理器)

在特定楼层的公寓是一个过程。

一个住在特定公寓房间里的人是一根线。

人们住在一个特定的公寓里,共用一个空间。即进程中的每个线程共享相同的地址空间。

每个人在房间中共享的东西很少,如厨房、淋浴区等,即进程中的每个线程共享代码、数据、文件

特定公寓中的淋浴间需要与居住在该公寓中的人(线程)进行同步。因为一次只有一个人可以使用。

每个人都有自己的一组不能与他人分享的东西,例如他的内衣;) (一个线程有自己的堆栈,寄存器)

一个人可以把新朋友叫到他的公寓里。例如,一个线程可能会为他的愿望产生新的线程(也许这个线程很无聊,哈哈)

建筑物的所有者,可以关闭任何房间,创建新的房间,或分配新的租户或将他们扔掉。内核可以分配新的进程,也可以创建销毁线程。

.

伙计们,如果我的类比是对的,请告诉我。如果还有什么我可以添加的,以使它更清楚或正确。

我看到的唯一问题是,当一个拥有多个线程的进程在不同的内核上运行时……有没有办法把它包含在类比中..?

让我知道。非常感谢。:)

参考- https://www.his.se/PageFiles/4854/2010/threads_6slides.pdf?epslanguage=sv

EN

回答 1

Stack Overflow用户

发布于 2011-05-28 03:15:44

在您的示例中,Shower可能是一个有限的资源,可能是内存资源或设备,这就是为什么它必须被共享。你没有给出相同的东西。

线程没有自己的寄存器,除非你指的不是其中一个CPU内核中的寄存器。线程共享内核,因此它们实际上是在时间拼接下运行的。我会更多地将其比作公寓房间里的人进进出出,但随后你的淋浴想法就泡汤了。在这一点上,我会说他们必须共享储物柜,但一次只有一个租户可以使用特定的储物柜。

进程在核心的边界内执行,但它并不物理地存在于核心上,但我认为对于这种情况,隐喻已经足够清楚了。

如果你担心线程在不同的内核上运行,你可以把它比作监狱里的淋浴间。其中的家伙(线程)进出不同的淋浴(核心),即使他们属于不同的帮派(进程),他们必须像以前一样共享一组储物柜。

无论您用什么类比,都很难解释内核上不同进程/线程的时间拼接和快速进入和退出。

而且,我遇到的真正问题是,线程不会感到无聊:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6156636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档