我是Python
(2.7)的新手。我编写了一个简单的程序,该程序使用tabula-py
和PyPDF2
读取10,000张500页pdf中的表,并为每个表编写一个.csv。最终,我计划将提取的数据写入SQL数据库,但目前仅.csvs。我可以通过大学的远程环境访问多个核心,我想通过并行运行来加快程序运行速度。并行进程应该能够完全独立运行,每个进程分别在不同的pdf上运行并写入单独的csv。处理顺序无所谓
我已经阅读了有关多线程和多处理的内容,但是我认为我的问题不需要复杂的内容,因为永远不需要同时访问相同的资源。
采用8个CPU内核来加速此任务的最佳方法是什么?
答案 0 :(得分:0)
我不确定您是要限制IO还是CPU,但不确定是CPU受限(我认为这是您最好的选择)threading might not be the option you seek。
何时使用线程还是进程?
Another helpful kickstart can be found here和here。克里斯·基尔(Chris Kiehl)总结了The 2015 upvoted answer here,examples and explanation可能也有帮助。为了快速参考;
from multiprocessing.dummy import Pool as ThreadPool
pool = ThreadPool(4)
results = pool.map(my_function, my_array)
哪个是以下版本的多线程版本:
results = []
for item in my_array:
results.append(my_function(item))
祝你好运!