Django是否使用进程或线程来处理视图中的用户请求?

时间:2016-11-01 11:23:55

标签: django

Django 是否使用进程或线程来处理视图中的用户请求?

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

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

1 个答案:

答案 0 :(得分:7)

Django作为WSGI应用程序运行。如何发生这种情况取决于您的WSGI服务器(例如uWSGI,Gunicorn,mod_wsgi)。

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

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