为什么tensorflow可以使用多线程,而python由于GIL的原因一次只能执行一个线程?

2024-09-29 21:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道为什么我们可以使用Tensorflowrun in a multi-thread fashion,而python由于GIL,一次只能执行一个线程


Tags: in线程threadmultigilfashiontensorflowrun
2条回答

GIL的限制稍微微妙一些:一次只能有一个线程执行Python字节码

如果不需要,使用Python的capi(如tensorflow)的扩展可以释放GIL。像使用文件或套接字这样的I/O操作也倾向于释放GIL,因为它们通常需要大量的等待

因此,执行扩展或等待I/O的线程可以在另一个线程执行Python字节码时运行

大多数tensorflow核心都是用C++编写的,pythonapi只是它的包装器。运行C++代码时,常规的python限制不适用

相关问题 更多 >

    热门问题