繁体   English   中英

BOOST线程:线程还是进程?

[英]BOOST threads: threads or processes?

BOOST线程(版本1.49左右)是真正的线程还是单独的进程?

当我运行一个预编译版本的对接工具时,它看起来像是使用top的几个进程(具有不同的进程ID和100%的CPU使用率),但是当我自己编译它时(使用BOOST版本1.60),它们看起来像一个进程(使用单个进程ID和800%的CPU使用率)。

它不应该影响性能,如果这是你担心的。 Linux已经在提供了很久独立进程的形式,多线程。 它们像Copy-on-Write一样共享内存,但没有复制。 当由于使用更新的Linux调用而知道线程应该被组合在一起时,Top可以以不同的方式组织它,但是“真正的”线程仍然单独的进程(运行top -H以在内核看到它们时查看线程)。 它们是独立安排的,并且在内核的眼中除了一些重叠的内存页面之外没有任何共同之处(在初始化内存页面之后,内核不知道之后,它并不真正关心)。

所以是的,旧版本的boost可能会使用单独的“进程”而不是“线程”,但无论如何这都是语义。 引擎盖下没有什么不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM