如何在 Python 进程中访问由C++进程创建的互斥锁



我打算使用boost::interprocess在C++和Python进程之间共享内存。假设我需要 boost 提供的互斥锁来确保只有一个进程访问内存,我如何让 python 确认并解锁/锁定由 boost 创建的互斥锁?

似乎有两种明显的方法:

  • 查找用于boost的现有 python 包装器
  • 编写一个C++ Python 扩展模块,为应用程序提供特定于域的 API

使用上面链接中的示例和一些猜测,你会得到这样的东西:

   static PyObject *mySharedMutex_lock(PyObject *self, PyObject *args)
   {
       const char *objectName;
       int sts;
       if (!PyArg_ParseTuple(args, "s", &objectName))
       {
           return NULL;
       }
       boost::interprocess::named_mutex mutex(open_or_create, objectName);
       mutex.lock();
       return Py_None;
   }

显然,您需要上面链接说明中的其他样板文件,并且可能提供一种解锁互斥锁的方法。 让这个工作看起来不是很繁重。

相关内容

  • 没有找到相关文章

最新更新