Django是如何处理多个用户的?我知道Apache创建了一个新线程,expressjs使用异步方法。但我不理解Django,因为它是同步工作的,如果有2-3个以上的用户,这不是会减慢进程吗?
谢谢
发布于 2015-05-28 20:22:17
Django是一个WSGI应用程序,这是与Apache等(WSGI)服务器的根本区别。Node.js/Express.js包含自己的own服务器来取代Apache。Django必须由您选择的has服务器提供服务。
Django唯一的工作就是保持线程安全。并发请求的所有其他方面都由您的All服务器处理。
发布于 2015-05-28 20:24:52
假设您担心的是一般的多个连接/请求,而不是特定的用户,我将不得不说以下关于Django和线程的内容。
Django当然是线程安全的。正如跟踪Django开发的人可以观察到的那样,这是一个过去已经占据了几个人的设计考虑因素。
由于这个原因,Django可以在多线程容器中进行deployed,比如与Apache服务器一起工作的默认线程mod_wsgi,因此它已经被许多部署评估过。
然而,对于基于Django的任何特定应用程序,线程安全性如何是令人担忧的,这取决于开发人员和维护者是否使用最佳实践。
在Django文档中,有专门讨论线程安全性的部分。例如,class-based views documentation特别提到每个基于类的视图都有独立的状态。此外,一个非常常见的问题是自定义模板标记,如this section中的address。我敢肯定,目前我也错过了对这个主题的其他引用,所以如果您的线程安全问题太大,我建议您将文档放在手边。
发布于 2015-05-28 20:45:39
Django根本没有做任何事情来处理这个问题。这完全是为Django提供服务的任何服务器的工作,无论是Apache、gunicorn、uwsgi还是其他任何服务器。这些服务器负责管理线程或进程,以服务于多个请求。
https://stackoverflow.com/questions/30506282
复制相似问题