我正在尝试//完全同时对不同服务器进行2个或更多API调用。
这些调用(如果按顺序进行)平均需要0.5秒,但是每当我线程化这些调用时,它们在// // 2次调用时会花费0.7,在使用4次调用时会花费1.2。
0.7仍优于0.5 x 2,而1.2仍优于0.5 x 4秒。但是我不明白为什么//当两次通话时平均不会花费0.5。
这是我使用的代码(该函数实际上调用了不同类的方法,延迟可能源自线程化时的延迟吗?)
import multiprocessing.dummy
pool = multiprocessing.dummy.Pool()
def function(data):
timer = time()
new_data = *api_call*
print(time() - timer)
return new_data
# Option 1:
data = pool.map(book, [data1, data2])
# Option 2:
data = function(data1)
data += function(data2)
在此先感谢您,如果我找到了一种方法来获得与单独调用时一样快的响应,那真是太棒了,对于我而言,速度非常重要,并且我可以在不同的服务器上进行4-6次API调用同时真的很棒。