了解 uWSGI 线程

aug*_*0co 6 multithreading uwsgi

我对 Python 和 uWSGI 很陌生。我试图了解 uWSGI 和线程是如何工作的。我对 uWSGI 文档中的一些陈述感到困惑。例子:

默认情况下,Python 插件不会初始化 GIL。这意味着您的应用程序生成的线程将不会运行。如果您需要线程,请记住使用 enable-threads 启用它们。在多线程模式下运行 uWSGI(使用线程选项)将自动启用线程支持。这种“奇怪”的默认行为是出于性能原因,这并不可耻。

我创建了一个测试项目来查看此操作,这是一个非常简单的应用程序,它使用 ThreadExecutor 池,其中 uWSGI ini 文件不允许线程。

当你运行测试时,uWSGI 记录它从多个进程和一个核心开始(wth?,我假设这是他们行话中的线程?),看起来线程执行得很好。

我的问题是为什么即使在 uWSGI 配置中明确不允许线程也能正常工作?在不允许线程的情况下使用线程有什么缺点?