小编L.K*_*Koh的帖子

对于 IPC 共享对象 -ZeroMQ 或 Boost::interprocess 哪个更快?

我正在考虑自定义对象的进程间共享。我当前的实现使用 ZeroMQ,其中对象被打包成一条消息并从进程 A 发送到进程 B。

我想知道使用 boost::interprocess 实现并发容器是否会更快(其中进程 A 将插入到容器中,进程 B 将从中检索)。不确定这是否比在进程 A 中序列化对象然后在进程 B 中反序列化它更快。

只是想知道是否有人做过基准测试?比较两者在概念上是否正确?

ipc zeromq boost-interprocess c++11

5
推荐指数
2
解决办法
2640
查看次数

自旋锁是否可以确保获取顺序?

我有一个类似于以下内容的简单自旋锁实现:

class Spinlock{
  std::atomic_flag flag;
public:
  Spinlock(): flag(ATOMIC_FLAG_INIT) {}
  ~Spinlock() {}

  void lock(){
    while(flag.test_and_set(std::memory_order_acquire));
  }

  void unlock(){
    flag.clear(std::memory_order_release);
  }
};
Run Code Online (Sandbox Code Playgroud)

我的问题是类似这样一个互斥锁但自旋锁:

  • 线程1调用lock()
  • 在线程1调用unlock()之前,线程2和3都调用lock()。

是否可以保证线程2在线程3之前获得自旋锁?

如果不是,是否有任何可以确保获取顺序的锁定实现?

c++ multithreading c++11

2
推荐指数
1
解决办法
82
查看次数

标签 统计

c++11 ×2

boost-interprocess ×1

c++ ×1

ipc ×1

multithreading ×1

zeromq ×1