Dat*_*eks 1 django python-asyncio django-channels
在阅读 ASGI 规范时,我注意到WSGI 兼容性段落中的这句话:
\n\n\nWSGI 应用程序是同步的,必须在线程池中运行才能获得服务,但否则它们的运行时会映射到 HTTP 连接作用域\xe2\x80\x99s 生命周期。
\n
我不明白为什么它必须在线程池中运行?
\n我不明白为什么[WSGI应用程序]必须在线程池中运行?
在 ASGI 服务器内运行的 WSGI 应用程序必须在单独的线程中运行。如果要在事件循环线程中运行,单个 WSGI 应用程序将阻塞整个事件循环,包括服务器上运行的所有其他 ASGI 应用程序。原生 ASGI 应用程序不存在此问题,因为它们是异步的,因此设计为与其他协程和回调一起在事件循环内运行。
线程池只是一种优化:它缓存已经创建的线程,这样您就不需要为每个请求生成一个新线程。(它还提供了一次运行的最大线程数的上限,并对额外的请求进行排队。)
归档时间: |
|
查看次数: |
1681 次 |
最近记录: |