【发布时间】:2011-02-10 11:33:45
【问题描述】:
对于进程间通信来说,最快的便携式双向通信机制是什么,其中一个应用程序的线程需要与同一台计算机上另一个应用程序中的多个线程通信,并且通信线程可以位于不同的物理 CPU 上)。
我假设它会涉及共享内存和循环缓冲区以及共享同步机制。
但是当线程在不同的物理 CPU 上运行时,共享互斥锁非常昂贵(而且数量也有限)。
【问题讨论】:
-
您希望在这些进程和线程之间进行什么通信?
-
我看到的另一个可能影响性能的问题:一旦消息被传递,调度程序将不得不进行上下文切换以传递消息。大量的 RPC 消息会对性能产生巨大影响。而且它看起来不像在不可扩展的线程之间直接添加通信设施(在更糟糕的情况下,一个线程可以将消息传递给多个远程线程)。
-
我正在尝试传递大量相对较小的可变长度 RPC 消息。
标签: algorithm multithreading ipc multicore mutex