django - Django在 View 中使用进程还是线程来处理用户请求?

标签 django

Django 是使用进程还是线程来处理 View 中的用户请求?

如果 Django 使用线程,我就无法使用所有 CPU 核心(python 全局解释器锁),如果 Django 使用进程,我就无法放心共享内存。

我试图在谷歌中查找信息,但我设法找到的最多是 Did django use thread to handle requests?这似乎不是一个答案。

最佳答案

Django 作为 WSGI 应用程序运行。如何发生由 WSGI 服务器决定(例如 uWSGI、Gunicorn、mod_wsgi)。

Django 的请求处理程序是线程安全的。您可以将 WSGI 服务器配置为使用任意数量的进程(有时称为工作线程)和每个进程的线程。

正如您所提到的,进程使用更多内存,但线程会受到 GIL 的影响。一个好的配置应该在进程数和每个进程的线程数之间找到平衡。

关于django - Django在 View 中使用进程还是线程来处理用户请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40359077/

相关文章:

python - 如何从生成的 Django 表单中删除文本?

django - commit_on_success 装饰器应该只在 Django 的 View 中使用吗?

python - Annotate 和 Subquery 中的 Django Count 比简单地迭代我的项目并单独过滤要慢得多

python - 使用 ajax 渲染 django 表

python - 向 Django 模型添加动态字段

python - 将函数结果传递到 Django 中的 html

javascript - TinyMCE 编辑器图像管理器/在 Django 中上传

python - 从 2 个或多个模型合并 Django Admin 中的 "add"表单(以一对一关系连接)

python - 默认的 django 元素不显示 django 模板

python - Django ListView自定义查询集