Django如何处理多个用户? 我知道Apache创建了一个新线程,而expressjs使用异步方法。但我不明白Django,因为它同步工作,如果有超过2-3个用户,这会减慢这个过程吗?
由于
答案 0 :(得分:8)
Django是一个WSGI应用程序,它与Apache(WSGI)服务器(如Apache)有根本区别。 Node.js / Express.js包含自己的Web服务器来替换Apache。 Django必须由您选择的网络服务器提供服务。
Django唯一的工作就是线程安全。并发请求的所有其他方面都由您的网络服务器处理。
答案 1 :(得分:4)
假设您的担心一般涉及多个连接/请求而不是特别是用户,我将不得不说下面关于Django和线程的内容。
Django当然是线程安全的。这是一个设计考虑因素,过去曾经占据过几个人,因为跟随Django开发的人可以观察到。
出于这个原因,Django可以在多线程容器中deployed,例如与Apache服务器一起使用的默认线程mod_wsgi
,因此它已被许多部署评估过。< / p>
然而,有人担心任何基于Django的特定应用程序的线程安全性,这取决于各个开发人员和维护人员是否可以自行决定使用最佳实践。
在Django文档中,有一些专门讨论线程安全性的部分。例如,class-based views documentation特别提到每个基于类的视图都具有独立状态。此外,一个非常常见的问题是自定义模板标记,作为this section中的地址。我确信还有其他一些关于这个主题的引用,目前我很想念,所以如果您的线程安全问题太大,我建议保留文档。
答案 2 :(得分:3)
Django根本没有办法处理这个问题。它完全是任何服务器为Django服务的工作,无论是Apache,gunicorn,uwsgi还是其他什么。这些服务器负责管理线程或进程以提供多个请求。