如何在python中并行处理

如何在python中并行处理,python,python-3.x,parallel-processing,Python,Python 3.x,Parallel Processing,我有1000000条记录要处理。如果您使用单一代码,每天可获得160000美元 我想用python代码1000000/天,正确的函数是什么?(线程/多进程/子进程/etc) 我的单一代码: result = cursor.fetchall() def myProcces(id,data): ...... for row in result: myProcces(row[0],row) 您对模块的选择应基于您打算使用代码执行的处理类型。请进一步详细说明手头的任务类型 多线程:

我有1000000条记录要处理。如果您使用单一代码,每天可获得160000美元

我想用python代码1000000/天,正确的函数是什么?(线程/多进程/子进程/etc)

我的单一代码:

result = cursor.fetchall()

def myProcces(id,data):
    ......

for row in result:
    myProcces(row[0],row)

您对模块的选择应基于您打算使用代码执行的处理类型。请进一步详细说明手头的任务类型

  • 多线程:如果手头的任务是I/O绑定的进程,如API调用/请求响应,涉及一些睡眠或等待时间,则应使用此方法

  • 多处理:如果手头的任务更需要CPU,即涉及大量计算或CPU开销,则应使用此选项

  • 注意:如果您尝试对CPU密集型任务使用多线程,那么它将以与单个程序相同的性能工作

  • 多线程和多处理的组合:如果程序同时包含等待时间和CPU限制部分,则可以同时使用这两者

  • 您对模块的选择应基于您打算使用代码执行的处理类型。请进一步详细说明手头的任务类型

  • 多线程:如果手头的任务是I/O绑定的进程,如API调用/请求响应,涉及一些睡眠或等待时间,则应使用此方法

  • 多处理:如果手头的任务更需要CPU,即涉及大量计算或CPU开销,则应使用此选项

  • 注意:如果您尝试对CPU密集型任务使用多线程,那么它将以与单个程序相同的性能工作

  • 多线程和多处理的组合:如果程序同时包含等待时间和CPU限制部分,则可以同时使用这两者

  • 看看你的例子,我认为你是从数据库(I/O绑定进程)获取数据,而myprocess是一个计算(CPU绑定进程)@Arif hidayahyes,在我的单个程序中,我从db获取数据,myproces是调用api看看你的例子,我认为你是从数据库(I/O绑定进程)获取数据,myprocess是一个计算(CPU绑定进程)@Arif hidayahyes,在我的单个程序中,我从db和myproces获取是调用api。你从哪里获取记录?你的输出到哪里?只获取记录而不进行任何处理需要多长时间?如果你已经预取了1000条记录,只需处理它们需要多长时间?记录获取from pgsql(数据库),然后是要在myproces()中处理的记录。在myproces中,我们调用API并比较API和数据库中的数据。之后,我们根据条件进行更新/插入。3小时后,我们将获得20000个记录进程谢谢您的尝试,但您有点错过了我问题的重点。我正试图将从数据库中获取数据的时间、处理数据的时间和e保存结果的时间。如果您可以在40秒内无需处理就获得所有100万条记录,则您的任务可能会受到CPU的限制,并且您可能需要进行多次处理。如果仅从pgsql获取数据需要23小时,则您的任务可能会受到IO的限制,并且您可能需要进行多线程处理。因此,请澄清一下。您能说出完成任务的时间吗t和not处理1000条记录。然后处理1000条记录的时间从您提前获取所有1000条记录开始。谢谢。2秒=从数据库获取和不处理1000条记录,9分钟=从数据库获取后处理1000条记录您从何处获取记录?输出到何处?需要多长时间只需获取记录而不进行任何处理?如果您已经预先预取了1000条记录,只需处理1000条记录需要多长时间?从pgsql(数据库)获取记录,然后在myproces()中处理记录。在myproces中,我们调用API并比较API和数据库中的数据。之后,我们根据条件进行更新/插入。3小时后,我们将获得20000个记录进程谢谢您的尝试,但您有点错过了我问题的重点。我正试图将从数据库中获取数据的时间、处理数据的时间和e保存结果的时间。如果您可以在40秒内无需处理就获得所有100万条记录,则您的任务可能会受到CPU的限制,并且您可能需要进行多次处理。如果仅从pgsql获取数据需要23小时,则您的任务可能会受到IO的限制,并且您可能需要进行多线程处理。因此,请澄清一下。您能说出完成任务的时间吗t和not处理1000条记录。然后处理1000条记录的时间从您提前获取所有1000条记录开始。谢谢。2秒=从DB获取并不处理1000条记录,9分钟=从DB获取后处理1000条记录