- 主题:C++有什么好用的进程内 + 进程间通信框架?
- 你最好先想清楚业务需求是不是用C++做骨架最合适。
 
 【 在 z16166 的大作中提到: 】
 : 1、至少支持进程内的。烦了“线程间直接加锁然后互相call来call去的”这种模式了。类似Rust那种SPSC、MPSC的,或者进程内消息队列也行。
 : chrome的?
 : 2、能同时也支持同一台机器的进程间最好,不支持也行。不需要跨机器。
 : ...................
 --
 FROM 114.254.168.*
 
- 我现在用得最多的进程内通信是这个:
 https://github.com/cameron314/concurrentqueue
 
 我的做法,有一个基类
 class AppMessage
 {
 virtual void execute() = 0;
 }
 
 在实际应用中,根据不同的消息,派生消息。
 
 class BillingMessage : public AppMessage
 {
 virtual void execute () override final
 {
 // do something
 }
 }
 
 使用的时候,在生产者线程:
 
 auto msg = std::make_unique<BillingMessage>();
 mQueue->enqueue(std::move(msg));
 
 
 在另外一端,从queue 里面拿到 msg 后,无脑 msg->execut();
 
 【 在 kirbyzhou 的大作中提到: 】
 : 你最好先想清楚业务需求是不是用C++做骨架最合适。
 :
 --
 FROM 218.76.62.*
 
- 哈,是的。
 
 【 在 allegro 的大作中提到: 】
 : 那你不如直接mQueue->enqueue(std::function)
 :
 --
 FROM 218.76.62.*
 
- 用两组共享内存的循环队列,可以实现无锁的进程间点对点通信。
 不过跨平台的库没找到合适的,而且不适合多客户模式。
 --
 FROM 171.88.149.*
 
- disruptor?
 --
 FROM 115.173.238.*
 
- 我用的是nng(以前叫nanomsg)
 --
 FROM 101.86.16.*
 
- c++ 太艰难了,
 【 在 z16166 的大作中提到: 】
 : 1、至少支持进程内的。烦了“线程间直接加锁然后互相call来call去的”这种模式了。类似Rust那种SPSC、MPSC的,或者进程内消息队列也行。
 : chrome的?
 : 2、能同时也支持同一台机器的进程间最好,不支持也行。不需要跨机器。
 : ...................
 --
 FROM 101.88.149.*
 
- 以前用过linx,本地跨设备都行。
 【 在 z16166 的大作中提到: 】
 : 1、至少支持进程内的。烦了“线程间直接加锁然后互相call来call去的”这种模式了。类似Rust那种SPSC、MPSC的,或者进程内消息队列也行。
 :
 : chrome的?
 :
 : 2、能同时也支持同一台机器的进程间最好,不支持也行。不需要跨机器。
 :
 : 3、win/li
 : ..................
 
 发自「今日水木 on V2217A」
 --
 FROM 220.196.193.*
 
- com和cobra, 逃...
 【 在 z16166 的大作中提到: 】
 : 1、至少支持进程内的。烦了“线程间直接加锁然后互相call来call去的”这种模式了。类似Rust那种SPSC、MPSC的,或者进程内消息队列也行。
 : chrome的?
 : 2、能同时也支持同一台机器的进程间最好,不支持也行。不需要跨机器。
 : ...................
 --
 FROM 114.246.175.*