【问题标题】:Can a client be considered as a Thread?可以将客户端视为线程吗?
【发布时间】:2011-02-24 08:18:18
【问题描述】:

我们是否可以认为同时访问 Web 服务的相同方法的两个客户端是两个线程(涉及所有问题......)?
asp.net web 应用程序中的方法是否相同?

【问题讨论】:

    标签: asp.net asp.net-mvc multithreading wcf iis


    【解决方案1】:

    只要您不使用static 或其他基于静态的共享对象,代码中就不存在多线程问题。但是,您确实需要考虑资源(即文件)。

    每个请求都由一个专用线程处理,一旦处理完请求,该线程就会返回线程池。

    【讨论】:

    • 我需要将数据库视为资源吗?所以要注意“自动线程”可能导致的死锁?
    【解决方案2】:

    这取决于。请参阅我对Why are these asynchronous RIA Service calls executed in serial on the web server? 的回答。它由ServiceBehaviourAttributeInstanceContextModeConcurrencyMode 的两个属性控制。


    在 asp.net Web 应用程序中,来自多个客户端的请求倾向于并行处理,除非(出于某种奇怪的原因)两个客户端共享同一个会话,并且两个请求都针对标记为需要会话的页面(即我相信的默认值),在这种情况下,两个请求将被序列化。

    【讨论】:

      【解决方案3】:

      如果您谈论的是 WCF 服务,则行为取决于您如何配置服务。有关它的更多信息,您可以阅读this article on MSDNServiceBehaviorAttribute.InstanceContextMode Property

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-21
        • 2021-10-03
        • 1970-01-01
        • 1970-01-01
        • 2019-03-20
        • 1970-01-01
        • 2022-09-26
        • 2019-04-15
        相关资源
        最近更新 更多