使用shutil.copy2()在Python中复制文件阻止其他线程运行?

时间:2013-04-10 11:43:59

标签: python multithreading gil

我的CPython脚本中有3个线程:

  • 线程A是主线程,也使用shutil.copy2()
  • 复制文件
  • 线程B代表东西B
  • 线程C用于填充C(将消息打印到lcd屏幕)

复制文件需要花费时间(10-20秒),有时似乎其他线程在e.q上进行复制时不会运行。没有任何东西从其他线程打印在终端或LCD屏幕上。

所以问题是:在一个线程中复制大文件时,我看到了什么,或者Python(GIL)阻止其他线程运行?我试着谷歌搜索但没有找到任何东西,所以我猜它不是..?

编辑:

好吧,伙计们,我想我找到了罪魁祸首。我的devel系统正在从NFS启动,由于某种原因,它使我的文件复制操作挂起系统中正在发生的所有其他事情。在独立模式下启动系统时,一切正常。现在我知道这不是导致这种情况的代码,我可以继续前进。

所以答案是:不,shutil.copy2()不会阻止其他线程。

0 个答案:

没有答案