将 threaded = True
传递给 app.run()
到底是做什么的?
我的应用程序从用户那里处理输入,并需要一些时间来完成此操作。在此期间,该应用程序无法处理其他请求。我已经测试了 threaded=True
的应用程序,并且它允许我同时处理多个请求。
threaded=True
,每个请求都在新线程中处理。您的服务器可以同时处理多少个线程完全取决于您的操作系统以及它对每个进程的线程数限制。该实现使用 SocketServer.ThreadingMixIn
类,它不对它可以启动的线程数设置任何限制。使用此语句,我的应用程序能同时处理多少个请求?
这取决于您的应用程序。每个新请求都会启动一个线程- 这取决于您的计算机可以处理多少个线程。我没有看到限制线程数量的选项(例如uwsgi在生产部署中提供的选项)。
使用它有什么缺点?如果我不期望大量并发请求,我可以继续使用它吗?
从单线程切换到多线程可能会导致并发错误... 如果您使用此功能,请小心处理全局对象(请参见文档中的g对象!)和状态。
thread = true
是否允许硬编码的x
数量的请求同时处理。所以它是由我的机器决定的吗? - Harrison