我有一个对延迟敏感的应用程序,它由2逻辑部件组成,可以并行运行。我最初的设计是使每个逻辑部分成为一个独立的程序,并在不同的核心上运行它们,通过文件传递信息,映射共享内存。但是,在知道来自同一个进程的甚至两个线程都可以在单独的核心中运行之后,我想将这两个程序合并成一个进程,每个进程都运行在一个与独立内核绑定的线程上。而且,由于进程中的所有线程共享内存空间,我可以消除共享内存,直接使用程序内存空间,这样会更快。
我的推理正确吗?如果正确,那么将应用程序分离为 process 而不是在一个进程中使用线程关联有什么好处?
发布于 2017-07-22 21:44:31
是的,你的推理是正确的。在Linux中,可以用不同的内核绑定不同的线程,这样就可以摆脱文件映射的共享内存。
2) 文件映射共享内存(我会使用术语进程间共享内存)主要用作不同进程之间的通信/消息传递方式,例如需要随时在后台运行的监视进程与随时可以打开/关闭的用户界面进程之间的通信/消息传递。在您的情况下,您只需要线程亲和力。
https://stackoverflow.com/questions/44888234
复制相似问题