在C中多线程调用python文件问题
各位大虾:
小弟遇到一个问题,实在弄不明白,请各位大虾指点。
我在C中多线程调用python, 线程自然运行结束就没有问题,但是在程序里:有时,我需要强行kill线程(即子线程没有完全运行完,比如子线程在下载,但是下载到一半儿的时候,我需要退出子线程并且停止下载),我在kill线程时的操作:
PyGILState_Release( gstate ), 但是总是会出错,错误信息如下:
Fatal Python error: This thread state must be current when releasing
我在主线程的操作是:
Py_Initialize();
PyEval_InitThreads();
PyEval_ReleaseThread(PyThreadState_Get());
我在创建子线程和结束子线程时做的操作:
创建子线程时的操作:
gstate = PyGILState_Ensure( );
结束子线程时的操作:
PyGILState_Release( gstate );
小弟查看了论坛里的历史帖子,有人遇到过类似的问题,但是没有合适的回答,请熟悉python多线程编程的大虾帮小弟一把,谢谢!!