![]() |
1
337
|
![]() |
2
117
我发现 this guide
因此,您可以将协程视为以非常有效的方式管理线程的东西。 ¤ 发射
所以
异步
所以
|
![]() |
3
17
我想展示一个非常基本的例子,它将帮助你们非常容易地理解差异
在本例中,我的代码是点击下载3个数据
这样,我们同时启动了所有3个任务。所以,我要完成的总执行时间只有
|
![]() |
4
15
|
![]() |
5
8
Async和Launch都用于创建在后台运行的协同路由。几乎在任何情况下,都可以使用其中任何一种。
当您不关心任务的返回值,只想运行它时,可以使用Launch。如果需要任务/协同例程的返回类型,则应使用async。 候补 : 然而,我觉得上述差异/方法是从Java/每个请求一个线程模型的角度考虑的结果。协同路由非常便宜,如果您想从某个任务/协同路由(比如说服务调用)的返回值中做一些事情,最好从该返回值中创建一个新的协同路由。如果您希望一个协程等待另一个协程来传输一些数据,我建议使用通道,而不是延迟对象的返回值。使用通道并根据需要创建尽可能多的协同路由是更好的方法 详细答案 : 唯一的区别在于返回类型和它提供的功能。
发布回报
|
![]() |
6
5
发射 异步 返回结果(延迟作业)
考虑一个返回字符串值的异步方法。如果使用异步方法时没有
两者之间的关键区别
|
![]() |
7
2
|
![]() |
8
0
除了其他很棒的答案外,对于熟悉Rx和参与协作的人来说,
|
![]() |
Jess The Witch · GCP云功能中处理延迟任务的模式 6 月前 |
![]() |
Plup · 连接失败时,PyMongo异步客户端未引发异常 7 月前 |
![]() |
user1233894 · 尝试从全局函数传递值 7 月前 |
![]() |
Fabiano Taioli · 管理单线程Rust中的阻塞函数 10 月前 |
![]() |
river7816 · 为什么spdlog不在async函数中打印 11 月前 |