我想知道asp.net如何处理“同时”的Web请求。让我们想象一个交易平台,交易者可以在该平台上实时购买股票。每次交易员发送订单时,系统必须确保交易线程中只能有一个请求。这样可以保护行业的诚信。举个简单的例子,假设系统需要1秒钟来执行命令。在这1秒钟内,所有其他交易都必须等待一个接一个地进行(这可以优化,但是就示例而言,这是如此简单)。
我的问题是ASP.net如何管理并发和线程?如果我在代码的敏感部分使用了锁,那么由asp.net创建的所有请求是否都会一个接一个地进入?最好的方法是什么?ASP.net创建的每个线程如何相互交互以确保敏感的锁定部分中还没有另一个线程?
我希望我的问题有意义,问我是否不清楚。
编辑:我应该精确地说,订单是通过Web服务发送的,并且用户期望得到答案(成功或失败)。
ASP.NET实际上并没有那么多地管理并发性。它所做的就是接受请求并将其作为工作项推送到线程池。最终,框架调用了应用程序代码。
那么,您的应用程序所要做的就是您的业务。ASP.NET不在乎。如果您想锁住并等待,那就这样吧。ASP.NET既不希望了解该事实,也无法确定是否愿意。对于系统来说,您的工作项似乎花费了很长时间(因为它们阻塞在锁上)。
无法告诉ASP.NET串行调用您的交易系统。您必须自己建立这种协调。
如您所见,ASP.NET内部的同步类似于ASP.NET外部的同步。(我已经掩盖了很多细节。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句