我应该在这个python代码中使用哪种方法..多线程或多处理?

时间:2016-06-28 07:42:57

标签: python multithreading multiprocessing

我需要平行运行以下循环:即 一次迭代不应该等待其前一次迭代完成。 我希望所有迭代都能同时运行'n'的所有值,这样我就可以减少运行时间并更快地获得结果。

.done()

,其中

for i in range(0,n):  
    api=str('some API string like https://maps.googleapis.com/maps/api/place/details/output?parameters '+offset+'')
    tag=json_tag(api) #API call 
    temp=tag["data"] #parsing json response

    for i in temp:
       place_list.append(i["name"]) #storing name field in list

    offset=int(offset)
    offset+=50

我正在调用API'n'次,其中有一个'offset'参数,每次调用API时都会更改.'json_tag(api)'返回API调用的json响应。来自json响应我带了一些数据并将其存储在名为“place_list”的列表中。

我希望输出相同.i.e。列表中的内容(“place_list”)应与我通常运行循环的顺序相同。我应该使用哪种方法来并行运行循环多处理或多线程? 我该如何实现呢?

1 个答案:

答案 0 :(得分:0)

获取最大线程数,并将n除以线程数,如果需要平衡它。 然后只需将参数的开始和结束传递给线程。

例如:

def function(start, end):
    for i in range(start,end):  
        [your code]

要保存结果,您可以使用某个线程索引创建某种结果列表,以了解第1个等等。然后将其与订单连接起来。