WebApi异步与同步

时间:2018-10-23 06:52:51

标签: c# asp.net-web-api

我是.Net WebApi的新手,因为我知道最好使用异步API而不是同步API,但是有什么区别? 如果API是同步的并且已从客户端调用,并且从另一个客户端调用了另一个电话(如我所检查的),则不会发生中断,并且这两个调用将同时进行。那么,使其成为Async有什么好处?

更新:据我了解,如果请求数量巨大,如果我使用异步,则某些调用的等待时间将减少,因为有更多线程可用于运行任务(因为其中一些已释放以等待数据库调用或网络调用等)。

2 个答案:

答案 0 :(得分:3)

在SYNC的情况下,发生的情况是,每个请求都专门分配一个线程,并且仅在完成特定请求后才释放该线程。 在发生ASYNC的情况下,该线程可能会被其他请求重用。

因此,如果您的应用程序是I / O绑定,则可以通过使用ASYNC看到应用程序的显着改进;如果您的应用程序是CPU绑定,则ASYNC不会那么有用。

https://en.wikipedia.org/wiki/I/O_bound

https://en.wikipedia.org/wiki/CPU-bound

答案 1 :(得分:-2)

首先,重申同步和异步之间的区别。

{-------------同步任务1 -------------} {--------------同步任务2 ------------}

{----------------------异步任务1 --------------------}
                        {----------------------异步任务2 --------------------}

我希望您到此为止都能得到答案,为什么这样做有好处。想象一个场景,您的API服务于1000名篮球付款人及其详细信息的列表,同时请求进入城市列表。我敢打赌,如果您在播放播放器列表时得到了某些东西,客户端应用程序看起来会更整洁,不是吗?

第二,API并不喜欢Aync。它是您编程的一种选择。如果您使用全部语言和操作系统功能,那么您的应用程序和用户将从中受益。

教学,

如果您正在使用新的内存缓存或自定义服务器级缓存,则使用异步确实有助于缓存。毕竟,您的客户正在寻找304退货,并且在处理较长的请求时,可以处理较小的请求,即缓存检查。