gpt4 book ai didi

python - BasicHTTPServer、SimpleHTTPServer 和并发

转载 作者:太空狗 更新时间:2023-10-30 02:06:36 24 4
gpt4 key购买 nike

我正在使用 python、BasicHTTPServer 和 SimpleHTTPServer 编写一个用于测试目的的小型 Web 服务器。看起来它一次处理一个请求。有什么方法可以让它更快一点而又不会弄得太深?基本上我的代码如下所示,我希望保持这种简单 ;)

os.chdir(webroot)
httpd = BaseHTTPServer.HTTPServer(("", port), SimpleHTTPServer.SimpleHTTPRequestHandler)
print("Serving directory %s on port %i" %(webroot, port) )
try:
httpd.serve_forever()
except KeyboardInterrupt:
print("Server stopped.")

最佳答案

您可以使用来自 SocketServer 的 mixin 继承创建您自己的线程或 fork 类:

import SocketServer
import BaseHTTPServer

class ThreadingHTTPServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
pass

这有其局限性,因为它不使用线程池,受 GIT 等限制,但它可以提供一点帮助(相对较少的努力)。请记住,请求将由多个线程同时处理,因此请务必在处理请求的过程中对全局/共享数据的访问进行适当锁定(除非此类数据在启动后不可变)。

This SO question覆盖相同的地面(不是特别长)。

关于python - BasicHTTPServer、SimpleHTTPServer 和并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2455606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com