小编jpa*_*vel的帖子

对Python bytearray的多线程访问

看来,由于访问NumPy数组数据不需要调用Python解释器,C扩展可以在释放GIL后操作这些数组.例如,在这个帖子中.

内置的Python类型bytearray支持缓冲协议,其中一个成员是

void *buf

指向缓冲区字段描述的逻辑结构的开始的指针.[...]对于连续数组,该值指向内存块的开头.

我的问题是,在发布GIL(Py_BEGIN_ALLOW_THREADS)后,C扩展是否可以操作此buf,因为访问它不再需要调用Python C API?或者Python垃圾收集器的性质是否禁止这样做,因为在执行期间可能会移动bytearray及其buf?

python multithreading

5
推荐指数
1
解决办法
460
查看次数

标签 统计

multithreading ×1

python ×1