在我的程序中,我正在向服务器发出请求。我希望这些请求并行运行以更快地下载数据,所以我使用了多处理。起初该程序起作用了,但是后来我想将整个项目变成一个功能。我在多处理程序中隔离了该问题,并意识到该功能在没有该功能的情况下仍然有效。
我尝试删除多处理,该功能运行良好。当我再次尝试多处理时,该函数失败。我想让多重处理在函数内部并行运行我的函数,而不是让函数串行运行。
Python:
# This doesn't work
def download():
data = [name1, name2, name3, name4]
if __name__ == '__main__':
pool = multiprocessing.Pool()
result = pool.map(randomFunction, data)
# This works
def download():
data=[name1, name2, name3, name4]
randomFunction(data[0])
randomFunction(data[0])
randomFunction(data[0])
randomFunction(data[0])
答案 0 :(得分:0)
您可以尝试使用线程。
import threading
def your_function():
###whatever your downloader is
t1 = threading.Thread(target=your_function)
t2 = threading.Thread(target=your_function)
t1.start()
t2.start()
t1.join()
t2.join()
我已经成功地使用它大大加快了请求的速度。这可能会或可能不会在任何时候为您节省,但是值得一试。
也将有助于您查看更多代码。