所以,我有一个9000行的csv文件。我已经阅读并将其存储在带有字符串键m的字典列表中。我要做的是为每个项目循环list[m]
并将其处理为一个函数processItem(item)
。这processItem
将返回类似于csv格式的字符串。我的目的是为processItem
列表中的每个项目编写函数的结果。有什么想法如何做这种多线程的方式吗?
我认为我应该将列表划分为N个子列表,然后以多线程方式处理这些子列表。每个线程将返回从子列表处理的字符串,然后将其合并。最后将其写入文件。如何实现呢?
这是使用multiprocessing
模块和Pool()
功能的完美示例(请注意,threading
模块不能用于提高速度)。
您必须在列表的每个元素上应用一个函数,因此可以很容易地将其并行化。
with Pool() as p:
processed = p.map(processItem, lst)
如果您使用的是Python 2,Pool()
则不能用作上下文管理器,但是可以这样使用它:
p = Pool()
processed = p.map(processItem, lst)
processItem()
将为中的每个元素调用函数lst
,结果将创建一个新列表processed
(保留顺序)。
该函数Pool()
产生了CPU具有内核的尽可能多的进程工作程序,并且该函数会在上一个任务完成后立即执行新任务,直到处理完所有元素为止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句