当前位置:  开发笔记 > 编程语言 > 正文

如何异步执行几次函数并得到第一个结果

如何解决《如何异步执行几次函数并得到第一个结果》经验,为你挑选了0个好方法。

我有一个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)

我认为这是一种糟糕的方式,因为你将相同的管道传递给所有线程,我真的不知道,但我想这必须是非常不安全的.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有