首页 > 编程语言 >C++子线程中调用python代码

C++子线程中调用python代码

时间:2023-01-30 17:24:15浏览次数:50  
标签:调用 python Py C++ 线程 PyGILState

项目需要C++调用python的算法,由于python算法比较耗时,因此采用在C++里启动working thread来调用python脚本,python代码里含有cv2.imread()等opencv的调用,在子线程里调用会卡死。

解决办法:

//1,主线程初始化python时,需要使能多线程:
Py_Initialize();
PyEval_InitThreads(); 
 
//2,主线程中,创建子线程之前:
Py_BEGIN_ALLOW_THREADS
// 创建子线程并执行子线程
Py_END_ALLOW_THREADS
 
//3,子线程中:
void workingThread()
{
    PyGILState_STATE ret = PyGILState_Ensure();
    // 代码逻辑,包括调用python脚本
    PyGILState_Release(ret);
}

标签:调用,python,Py,C++,线程,PyGILState
From: https://www.cnblogs.com/lidabo/p/17076698.html

相关文章

  • 【Python笔记2.1】Python Unicode字符编解码
    以下部分参考[1],这里复制了其中一部分是为了防止原文被移动或删除。概述Python中有字符串类型(str)和字节类型(byte),以及Python编码中最常见也是最顽固的两个错误:Unic......
  • 【Python笔记2.2】用zipfile解压zip包时遇到的Unicode字符编解码问题
    pythonunicode字符编解码问题参见【Python笔记2.1】python中用zipfile解压zip包网上资料一堆,这里就不多说了。下面使用【Python笔记2.1】中总结出来的字符编解码函数......
  • 【KAWAKO】python查看内存空间占用情况
    目录查看变量的内存占用查看运行内存占用查看变量的内存占用importsysc=1145.114print(sys.getsizeof(c))查看运行内存占用importpsutilmemory=psutil.vir......
  • python实用小技之数据结构
     本文大多数例子搬自pythoncookbook这里是对学习的一个总结和提炼ps:python版本为python3 1.解压序列赋值给多个变量#有一个包含N个元素的元组或者是序列,怎样将......
  • 多个线程下处理事务
     springboot项目都是声明式事务,在多个线程事务处理时,需要我们使用手动事务管理器@ResourceprivatePlatformTransactionManagerplatformTransactionManager;......
  • python 中异常类型总结
    异常类型:异常名称描述BaseException       所有异常的基类SystemExit          解释器请求退出KeyboardInterrupt    用户中断......
  • python实战-基于正交实验(工具:allpairs)自动生成接口异常测试用例
    实现思路1.抓取api信息(目前公司用的swagger),uri、method、params、response,解析完成后写入excle2.读取抓取完毕的api信息,处理为allpairs所需要的ordereddict3.调用allpai......
  • 多线程基础
    ThreadFactory线程工厂生产线程的工厂,newThread是生产线程的方法,可以定义线程的基本特性。(比如优先级、是否守护线程) join调用join方法就会优先执行这个线程(thread1),等......
  • c++线程池
    #pragmaonce#include<algorithm>#include<atomic>#include<condition_variable>#include<cstdint>#include<functional>#include<future>#include<map>#i......
  • python之路60 drf从入门到成神 1
    老刘讲课资料获取#个人博客:https,证书过期,忽略-https://www.liuqingzheng.top/#cnblogs博客(后期迁移到这里,高级部分的内容)-https://www.cnblogs.com/liuqin......