Python 手动运行多个程序实例的好处
所以我在Google上搜索了python3的多线程,但没有找到我想要的东西 我有一个python模块,它指向给定的路径,从一堆excel文件(.xlsx使用openpyxl)中提取数据,并输出一个csv以进入我的sql数据库。目前,浏览所有160多个文件(大文件,与每个文件本身的时间无关)需要约20-25分钟。我将它们分成两个不同的目录,每个目录大约80个,同时在每个目录中运行两个空闲实例('path\test1\'和'path\test2\') 这两个python实例同时运行,耗时16分钟。以这种方式运行,甚至扩展到同时运行4个python实例,有哪些限制/问题 笔记:Python 手动运行多个程序实例的好处,python,Python,所以我在Google上搜索了python3的多线程,但没有找到我想要的东西 我有一个python模块,它指向给定的路径,从一堆excel文件(.xlsx使用openpyxl)中提取数据,并输出一个csv以进入我的sql数据库。目前,浏览所有160多个文件(大文件,与每个文件本身的时间无关)需要约20-25分钟。我将它们分成两个不同的目录,每个目录大约80个,同时在每个目录中运行两个空闲实例('path\test1\'和'path\test2\') 这两个python实例同时运行,耗时16分钟。以
- 从excel中获取的数据对于每个文件都是完全独立的,因此在我合并csv输出以便稍后上传之前,不需要交互
- 在工作笔记本电脑上,HP elitebook配备四核cpu
顺便说一句,这让我对学习c感兴趣,因为它具有多线程功能 Python模块的单个实例一次可能只能利用单个核心。如果您的进程是CPU受限的,那么随着所有内核的利用,您将看到这种并行性的好处在下降。您可能会发现,如果您的进程占用大量磁盘IO,那么随着IO需要随着进程数量的增加而扩展,您的性能会更快地下降 在任何一种情况下,在一个只有一个磁盘的四核cpu上,您都会看到并行化的好处随着线程/进程的减少而减少。除了以现有的方式运行脚本的几个实例之外,您可能不值得显式地多线程执行此类任务。您的程序必须:
- 将数据从硬盘读取到内存中李>
- 在内存中进行一些处理(解析数据)
- 将新数据从内存写入硬盘驱动器
- 它从磁盘读取数据的速度有多快李>
- 它写入磁盘的速度有多快
- 驱动器“搜索”的速度。将磁头从磁盘的一个部分移动到另一个部分,并找到正确的扇区。当您同时访问多个不同的文件时,这一点更为重要李>
- 将数据移入和移出内存李>
- 处理器处理数据的速度