我对Python相当陌生,我需要在代码中实现多线程。在
我有一个巨大的.csv文件(百万行)作为输入。我读取这一行,对每一行发出rest请求,对每一行进行一些处理,然后将输出写入另一个文件。输入/输出文件中的行顺序很重要。现在我正在一行一行地做。 我想运行相同的代码,但并行运行,即从.csv文件中读取20行输入,然后并行进行其余的调用,这样我的程序就更快了。在
我一直在阅读http://docs.python.org/2/library/queue.html,但是我读到了pythongil问题,它说即使在多线程处理之后,代码也不会运行得更快。 有没有其他方法可以简单地实现多线程?在
你能把.csv文件分成多个更小的文件吗?如果可以,那么可以让另一个程序运行多个版本的处理器。在
假设这些文件都命名为file1,file2,等等,您的处理器将文件名作为参数。你可以:
Python在IO上发布GIL。如果大部分时间都花在处理rest请求上,则可以使用线程来加快处理速度:
如果输入/输出顺序应该相同,则可以使用}。在
imap
而不是{如果您的程序是CPU限制的,您可以使用创建多个进程的
multiprocessing.Pool()
。在另请参见Python Interpreter blocks Multithreaded DNS requests?
This answer shows how to create a thread pool manually using threading + Queue modules。在
相关问题 更多 >
编程相关推荐