- 主题: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.*