线程关联性与进程关联性

时间:2017-07-03 14:33:10

标签: linux multithreading process shared-memory affinity

我有一个对延迟敏感的应用程序,它包含可以并行运行的 2个逻辑部分。我的原始设计是使每个逻辑部分成为独立程序,并在通过文件映射共享内存传递信息的单独核心上运行它们。但是在知道来自同一进程的2个线程可以在不同的内核中运行之后,我想到将这2个程序合并到一个进程中,每个进程都在线程上运行绑定独立核心。由于进程中的所有线程共享内存空间,我可以消除共享内存并直接使用程序内存空间,这样会更快。

我的推理是否正确?如果正确,在一个流程中将应用程序分离为流程而不是使用线程关联性的优势是什么?

1 个答案:

答案 0 :(得分:2)

1)是的,你的推理是正确的。在Linux中,您可以使用不同的核心绑定不同的线程,这样就可以摆脱文件映射的共享内存

2)文件映射共享内存(我会使用术语进程间共享内存)主要用作不同进程之间的通信/消息传递方式,例如:需要在后台运行的监视进程和可以随时打开/关闭的用户界面进程之间。在您的情况下,您只需要线程亲和力。