使用IPC作为多线程替代

Using IPC as a multithread substitute?

本文关键字:多线程 IPC 使用      更新时间:2023-10-16

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

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

也许有一个共享内存可以写入物理和人工智能结果,然后渲染器可以用来输出图形。

你觉得怎么样?荒谬的想法还是可行的?

谢谢你抽出时间。

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

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

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

也就是说,创建线程和创建进程在不同的操作系统上的开销各不相同;Windows进程的创建成本很高,而Linux进程几乎是免费的。

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