Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asynchronous 重载广播,使其不异步_Asynchronous_Async Await_Julia_Array Broadcasting - Fatal编程技术网

Asynchronous 重载广播,使其不异步

Asynchronous 重载广播,使其不异步,asynchronous,async-await,julia,array-broadcasting,Asynchronous,Async Await,Julia,Array Broadcasting,我正在Julia开发一个web API访问包,遵循相当标准的REST。 它有很多方法,比如: post_foo(cred::ServiceCred, x, y) get_foo(cred::ServiceCred, x, y) 有时我想一次向API发布多个内容(或从中获取多个内容)。 假设我有多个ys我想post\u foo 因为我已经做了Base.broadcastable(cred::ServiceCred)=Ref(cred), 我可以做到: post_foo.(cred, "id123

我正在Julia开发一个web API访问包,遵循相当标准的REST。 它有很多方法,比如:

post_foo(cred::ServiceCred, x, y)
get_foo(cred::ServiceCred, x, y)
有时我想一次向API发布多个内容(或从中获取多个内容)。 假设我有多个
y
s我想
post\u foo

因为我已经做了
Base.broadcastable(cred::ServiceCred)=Ref(cred)
, 我可以做到:

post_foo.(cred, "id123", ["a", "b", "c"])
从接口的角度来看,这是非常好的。 我甚至可以做到:

post_foo.(cred, ["id1", "id2", "id3"], ["a", "b", "c"])
让它依次执行post\u foo(cred,“id1”,“a”)等

但由于这些是web请求,我花了很多时间等待响应返回。 如果我使用异步处理,它可以快得多,因为它将发送它们,而不会阻塞,直到它没有任何东西可以发送为止。 然后远程服务器将并行处理它们,并返回所有响应。 使用
asyncmap
相当容易

但这不太好:

ansyncmap(["a", "b", "c"]) do y
    post_foo(cred, "id123", y)
end
所以我开始思考。 如果我为我的
ServiceCred
设置一个自定义,使所有处理都异步解析,然后不阻塞直到结束,该怎么办。 我认为它甚至可能会破坏更复杂呼叫的融合机制,因此,如果事情很好地结合在一起(但这可能要求有点高),所有请求在输入到达时都会立即被触发

  • 这真的可能吗
  • 如果没有,为什么没有呢
  • 如果是这样的话,我该怎么做呢