0
我正在学习使用多处理库的python中的多线程。为此,我试图创建一个程序,将一个大文件分成几个小块。因此,我首先从该文件读取所有数据,然后创建从该输入文件获取一段数据的工作任务,然后将该段写入文件。我希望有尽可能多的并行线程作为段数运行,但这不会发生。我看到最多两个任务,然后程序终止。我在做什么错误。代码如下。Python的多处理并不是并行创建任务
import multiprocessing
def worker(segment, x):
fname = getFileName(x)
writeToFile(segment, fname)
if __name__ == '__main__':
with open(fname) as f:
lines = f.readlines()
jobs = []
for x in range(0, numberOfSegments):
segment = getSegment(x, lines)
jobs.append(multiprocessing.Process(target=worker, args=(segment, x)))
jobs[len(jobs)-1].start()
for p in jobs:
p.join
仅供参考,你忘了叫'join',因此该方案实际上没有阻止那些'Process'es明确(它会隐除非它们发生重新守护进程)。 – ShadowRanger
我确实调用了join,请参阅代码的最后两行。 – pythonic
您引用了它。你没有打过电话。 'p.join'与'p.join()'有很大不同。 – ShadowRanger