我在哪里可以找到释放GIL的numpy函数列表?

Dan*_*ank 9 python numpy gil

我发现了几个SO问题以这种或那种方式询问这个问题,但它们实际上都没有给出一个列表或者引用一个列表.

这个问题指的是一个wiki页面,但在wiki页面会谈有关的GIL和多线程,它不会给的GIL释放功能的列表.

这个邮件列表帖子表明找出的唯一方法是阅读numpy源.真?

per*_*iae 3

它不能保证捕获所有内容,但我只是跑了:

git grep nogil
Run Code Online (Sandbox Code Playgroud)

在我的 numpy 存储库克隆中。它在 2 个文件中显示了 82 个用法:

  • random/mtrand/mtrand.pyx
  • random/mtrand/numpy.pxd

  • 实际上numpy有自己的宏来释放GIL,它们是在[这里](https://github.com/numpy/numpy/blob/master/numpy/core/include/numpy/ndarraytypes.h#L931)定义的。搜索“THREADS”应该涵盖所有情况。 (5认同)
  • 如果您也想查找的话,用于释放 GIL 的 C 内容是 Py_BEGIN_ALLOW_THREADS。 (4认同)
  • Numpy 是一个开源项目...如果您感到仁慈,您可以将此信息添加到[文档](https://github.com/numpy/numpy/tree/master/doc) 并提交拉取请求,这样就没有其他人需要阅读源代码了! (3认同)
  • @Jaime 请注意,链接到 GitHub 中的代码行意味着当代码更改并且链接中编号的行不再是您最初想要指向的相同代码时,您的链接将不再有意义。最好链接到*在特定提交*内的代码行,这样它就永远不会改变。 (3认同)