为什么我需要 PyMem_Malloc() 的 gil?
Why do i need the gil for PyMem_Malloc()?
根据this discussion,PyMem_Malloc()
需要GIL;但是,如果该函数只不过是 malloc()
的别名,谁在乎呢?
因为它有时不仅仅是 malloc()
的别名。有时它是 _PyMem_DebugMalloc()
的别名,并且那里有一些全局会计来跟踪唯一的内存对象。仅仅为了 PyMem_Malloc()
调用而释放 GIL 没有实际意义,因此您可能正在用 C 做一些更复杂的事情。如果是这种情况,您可以简单地调用 malloc()
而不会得到任何调试东西。
根据this discussion,PyMem_Malloc()
需要GIL;但是,如果该函数只不过是 malloc()
的别名,谁在乎呢?
因为它有时不仅仅是 malloc()
的别名。有时它是 _PyMem_DebugMalloc()
的别名,并且那里有一些全局会计来跟踪唯一的内存对象。仅仅为了 PyMem_Malloc()
调用而释放 GIL 没有实际意义,因此您可能正在用 C 做一些更复杂的事情。如果是这种情况,您可以简单地调用 malloc()
而不会得到任何调试东西。