开发者社区> 问答> 正文

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

我想知道为什么我们可以让Tensorflow 以多线程方式运行,而python只能由于GIL一次执行一个线程?

展开
收起
游客6qcs5bpxssri2 2019-09-15 22:42:52 1366 0
1 条回答
写回答
取消 提交回答
  • GIL的限制稍微微妙一点:一次只有一个线程可以执行Python字节码。

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

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

    2019-09-15 22:43:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载