如果我们考虑为一个用户提供服务的桌面应用程序,这也许很直观。但是,例如在Web应用程序中,我们编写了一个程序,该程序从数据库中获取内容并将其显示给用户浏览器,当两个或100个以上的用户同时请求相同的程序,相同的数据时会发生什么?
这是如何处理的以及如何处理,“看起来”如何,在幕后发生了什么,使之成为可能?据我所知甚少,我想象该程序每次按用户必须依次等待的顺序被调用时都会运行一次。多线程的概念在哪里出现或无关紧要? (编辑:我现在知道这称为并行计算,而不是并发或顺序)
感谢您的宝贵时间。 (顺便说一句,我不确定如何标记这个问题,任何建议将不胜感激!)
答案 0 :(得分:2)
在大多数Web框架中,这是通过使请求不共享任何数据来完成的。该框架负责为每个请求分别实例化所有必需的对象。
从概念上讲,该应用程序只是一个接受请求数据并输出响应数据的功能。因此,如果您的应用程序是一个简单的greeter应用程序,则该函数如下所示:
string GetResponse(string request) => "Hello " + request;
您可以在此处直观地看到多个并发用户访问此功能将是绝对安全的,因为这些用户不会共享任何状态。
通常,将不会共享任何全局变量。如果存在全局变量,则必须格外小心以确保其安全。
编写数据库,以便多个并发请求可以安全地交互。