首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python c++扩展,GIL有关问题

2013-03-13 
python c++扩展,GIL问题在python的c++扩展中,我释放掉GIL锁(Py_BEGIN_ALLOW_THREADS)之后进行的操作 是否

python c++扩展,GIL问题
在python的c++扩展中,我释放掉GIL锁(Py_BEGIN_ALLOW_THREADS)之后进行的操作 是否类似于启动了一个线程,一个真正的线程?

问题补充:我觉得在c++既然释放了GIL锁,那么我的python进程中其他的线程继续在调度(正常的单线程运行),而c++的外部方法则不会引发GIL锁定,那么我是否可以认为C++扩展中的方法 已经脱离了GIL的控制,成为一个真正的并行线程了(多核系统中)?
[解决办法]
没错,用Py_BEGIN_ALLOW_THREADS之后表示这个线程不再受GIL影响,在多核系统中就是真正的并行了。不过这个线程必须是用python api来启动的,否则在python解释器中会没有线程的状态数据,也就没法使用这个宏了。

热点排行