C++中带有嵌入式python模块的多线程
Multithreading in C++ with embedded python modules
我试图通过启动一个boost线程来创建一个多线程程序,该线程调用一个函数,该函数又调用一些python模块,但该程序在获取一些PyGILState_Ensure()锁并等待其无限期释放时挂起。你能告诉我这里出了什么问题吗。
是的,实际上一个python模块调用了我的c++代码,该代码在单独的线程中调用了另一个python模块,这就是为什么我认为它在等待PyGIL发布,这会导致死锁,那么,使用删除PyGIL的补丁有什么解决方案吗?
Python解释器不是可重入的,需要在调用它时锁定解释器(请参见例如。http://dabeaz.blogspot.be/2011/08/inside-look-at-gil-removal-patch-of.html)。在您的特定情况下,解释器上似乎已经有另一个Python调用在运行,并且它持有GIL。
相关文章:
- 在C++中使用cURL和多线程
- 多线程双缓冲区
- 为什么我的多线程作业队列崩溃
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 试图创建一个多线程程序来查找0-100000000之间的总素数
- 为什么一个向量上的多线程操作很慢
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 全局变量 多读取器 一个写入器多线程安全?
- boost::文件系统::recursive_directory_iterator多线程安全
- 如何阻止TensorFlow的多线程
- 如何在多线程中正确使用unique_ptr进行多态性?
- 并发/多线程:是否可以以这种方式生成相同的输出?
- sigwait() 在多线程程序中不起作用
- 多线程程序中出现意外的内存泄漏
- 静态 constexpr 类成员变量对多线程读取是否安全?
- 多线程比没有线程C++慢
- 具有 C++11 多线程的特征库
- C++中带有嵌入式python模块的多线程
- sql模块和多线程应用程序
- 多线程c++应用中的插件/模块通信方法