Malloc与nogil一起使用安全吗

Is Malloc safe to use with nogil?

本文关键字:安全 一起 nogil Malloc      更新时间:2023-10-16

在cython中用malloc和nogil分配内存安全吗?此外,如果您有使用nogil运行的多线程程序,那么传递指针是否安全?

GIL已就位,因为CPythons内存管理不是线程安全的。因此,在与Python对象交互的情况下,可以使用nogil,即与Python处理的内存交互。

发布GIL:的文件中提到了这一点

语句主体中的代码不得以任何方式操纵Python对象,并且在未首先重新获取GIL的情况下,不得调用任何操纵Python对象的内容。Cython目前没有对此进行检查。

因此,只要不涉及Python对象,使用malloc、传递指针以及在C中执行任何合法的其他操作都是完全安全的。