我有以下代码:
import SimpleHTTPServer
import SocketServer
def http_server():
PORT = 80
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
httpd.serve_forever()
问题在于,由于httpd.serve_forever()
,它会挂起程序的其余部分。我假设我可以使用线程在自己的线程上运行它,所以程序的其余部分可以独立于服务器执行,但我不知道如何实现它。
答案 0 :(得分:1)
最简单的方法,直接来自docs:
from threading import Thread
t = Thread(target=http_server)
t.start()
请注意,此线程很难按原样终止,KeyboardInterrupts不会传播到您start()
编辑的随机线程。您可能需要设置daemon=True
或使用更复杂的方法将其关闭。