使用IPC作为多线程替代品?

时间:2015-02-20 09:50:39

标签: c++ visual-c++

我想知道你是否理论上可以利用处理器的多个核心来通过使用进程间通信而不是多线程来更快地完成任务。

比如说一个游戏引擎。你有一个可执行文件处理ai和物理,然后另一个处理声音和渲染。

也许可能存在物理和ai结果被写入的共享内存,然后渲染器可以用来输出图形。

你怎么看?荒谬的想法还是可行的?

感谢您的时间。

编辑:引擎不存在,这只是一个例子。基本上我问的是,如果任何任务可以并行化,两个或多个程序是否可以一起工作。

1 个答案:

答案 0 :(得分:0)

  

基本上我问的是,如果任何任务可以并行化,两个或多个程序是否可以一起工作。

是的,这个想法原则上没有缺陷。

话虽这么说,创建一个线程并创建一个进程在开销方面因不同操作系统而异; Windows进程的创建成本非常高,而Linux进程则非常免费。

分离流程的一个优点是,当其中一个流程崩溃时,其他流程不受影响,可以重新启动。您还可以更轻松地将计算推送到整个网络中的另一台计算机。但是,在大多数情况下,同步线程可能更容易,性能更高。

相关问题