2024-09-29 21:26:50 发布
网友
我想知道为什么我们可以使用Tensorflowrun in a multi-thread fashion,而python由于GIL,一次只能执行一个线程
GIL的限制稍微微妙一些:一次只能有一个线程执行Python字节码
如果不需要,使用Python的capi(如tensorflow)的扩展可以释放GIL。像使用文件或套接字这样的I/O操作也倾向于释放GIL,因为它们通常需要大量的等待
tensorflow
因此,执行扩展或等待I/O的线程可以在另一个线程执行Python字节码时运行
大多数tensorflow核心都是用C++编写的,pythonapi只是它的包装器。运行C++代码时,常规的python限制不适用
C++
GIL的限制稍微微妙一些:一次只能有一个线程执行Python字节码
如果不需要,使用Python的capi(如
tensorflow
)的扩展可以释放GIL。像使用文件或套接字这样的I/O操作也倾向于释放GIL,因为它们通常需要大量的等待因此,执行扩展或等待I/O的线程可以在另一个线程执行Python字节码时运行
大多数
tensorflow
核心都是用C++
编写的,pythonapi只是它的包装器。运行C++
代码时,常规的python限制不适用相关问题 更多 >
编程相关推荐