我有一个函数get_data(request)
,它向服务器请求一些数据。每次调用此函数时,它都会向不同的服务器请求数据。所有这些都应该返回相同的响应。
我想尽快得到答复。我需要创建一个多次调用get_data
的函数,并返回它得到的第一个响应。
修改
我提出了使用multithreading.Pipe()的想法,但我觉得这是解决它的一种非常糟糕的方式,你怎么看?:
def get_data(request, pipe):
data = # makes the request to a server, this can take a random amount of time
pipe.send(data)
def multiple_requests(request, num_servers):
my_pipe, his_pipe = multithreading.Pipe()
for i in range(num_servers):
Thread(target = get_data, args = (request,his_pipe)).start()
return my_pipe.recv()
multiple_requests("the_request_string", 6)
我认为这是一种不好的方法,因为你将相同的管道传递给所有线程,我真的不知道,但我想这必须非常不安全。