2016-04-10 76 views
1

用cython中的nogil與malloc分配內存安全嗎? 也是安全的通過指針與你有多線程程序運行與nogil?Malloc可以安全地使用nogil嗎?

+1

當然。只要你在完成時釋放你的記憶,並在合適的時候使用鎖,你就是金。 –

回答

2

由於CPythons內存管理不是thread-safe,因此GIL已到位。因此,如果您的不是與Python對象(即由Python處理的內存)進行交互,則可以使用nogil

此文檔for releasing the GIL中提及:

代碼在聲明的正文不得操縱以任何方式Python對象,而不能調用任何操縱Python對象,而無需首先重新獲取GIL 。 Cython目前不檢查這一點。

因此,使用malloc,傳遞指針和做其他事情是在C法律是隻要絕對安全的,因爲沒有Python對象參與。

相關問題