使用IPC作为多线程替代
Using IPC as a multithread substitute?
我想知道,通过使用进程间通信而不是多线程,理论上是否可以利用处理器的多个核心更快地完成任务。
比如说一个游戏引擎。你有一个处理ai和物理的可执行文件,然后另一个处理声音和渲染。
也许有一个共享内存可以写入物理和人工智能结果,然后渲染器可以用来输出图形。
你觉得怎么样?荒谬的想法还是可行的?
谢谢你抽出时间。
编辑:引擎并不存在,它只是一个例子。基本上,我是在问,如果有任何任务可以并行化,两个或多个程序是否可以一起工作。
基本上,我是在问,如果有任何任务可以并行化,两个或多个程序是否可以一起工作。
是的,这个想法原则上没有缺陷。
也就是说,创建线程和创建进程在不同的操作系统上的开销各不相同;Windows进程的创建成本很高,而Linux进程几乎是免费的。
分离进程的一个优点是,当其中一个进程崩溃时,其他进程不会受到影响,可以重新启动。您还可以更容易地通过网络将计算推送到另一台机器上。然而,在大多数情况下,同步线程可能会更容易、更高性能。
相关文章:
- 在C++中使用cURL和多线程
- 多线程双缓冲区
- 为什么我的多线程作业队列崩溃
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 试图创建一个多线程程序来查找0-100000000之间的总素数
- 为什么一个向量上的多线程操作很慢
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 全局变量 多读取器 一个写入器多线程安全?
- boost::文件系统::recursive_directory_iterator多线程安全
- 如何阻止TensorFlow的多线程
- 如何在多线程中正确使用unique_ptr进行多态性?
- 并发/多线程:是否可以以这种方式生成相同的输出?
- sigwait() 在多线程程序中不起作用
- 多线程程序中出现意外的内存泄漏
- 静态 constexpr 类成员变量对多线程读取是否安全?
- 多线程比没有线程C++慢
- 具有 C++11 多线程的特征库
- 通过安装信号处理程序关闭多线程应用程序
- 成员变量在多线程 C++ 时自行更改
- 使用IPC作为多线程替代