BOOST线程:线程还是进程

BOOST threads: threads or processes?

本文关键字:线程 进程 BOOST      更新时间:2023-10-16

BOOST线程(大约1.49版本(是真正的线程还是单独的进程?

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

如果您担心的是性能,那么它不应该影响性能。Linux在长的时间内以单独进程的形式提供了多线程。它们共享内存就像写时复制一样,但没有复制。由于使用了最近的Linux调用,当Top知道线程应该分组在一起时,它可能会以不同的方式组织它,但"真正的"线程仍然是独立的进程(运行top -H以查看内核看到的线程(。它们是独立调度的,在内核看来,除了一些重叠的内存页之外,没有其他共同点(初始化内存页后,内核不知道之后会发生什么,它也不在乎(。

所以,是的,旧版本的boost可能使用了单独的"进程"而不是"线程",但这都是语义。没有什么不同。