我有一个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)
我认为这是一种糟糕的方式,因为你将相同的管道传递给所有线程,我真的不知道,但我想这必须是非常不安全的.