我有一个包含数十万行的巨大文件。我需要在每一行上运行相同的过程。我的计划是制作几个线程来加速这个过程。每当我使用treading和Queue模块之前我多线程。但是我无法弄清楚如何应用队列。我真正需要做的是逐行读取文件,因为文件太大而无法完成整个过程。我想也许我可以用.put()一次向队列添加一个东西,然后立即将它传递给线程,但似乎如果我这样做,线程可能会发生冲突。有什么建议吗?
答案 0 :(得分:0)
每行有多少处理。
如果不是很多,那么你可能会因多个线程竞争文件所在的设备而减慢速度?您可能希望事先拆分文件并将组件放在不同的设备上?然后,每个文件或每组文件启动一个进程就很简单了。
我将使用split,xargs -P unix命令来实现此