python:磁盘绑定任务,线程与进程

时间:2017-06-23 17:38:49

标签: python multithreading multiprocessing

我解析了一个很大的源代码目录(100k文件)。我遍历每个文件中的每一行并进行一些简单的正则表达式匹配。我尝试将此任务线程化为多个线程,但没有获得任何加速。只有多处理能够将时间缩短70%。我知道GIL的死亡控制,但是不应该帮助IO绑定访问吗?

如果磁盘访问是串行的,那么为什么有几个进程会更快地完成作业?

1 个答案:

答案 0 :(得分:1)

Python"线程"允许独立的执行线程,但由于全局解释器锁定,通常不允许并发:一次只能运行一个线程。这可能是您只获得多个进程的加速的原因,这些进程不共享全局解释器锁,因此可以同时运行。