3

我有以下代码:

import SimpleHTTPServer
import SocketServer

def http_server():
    PORT = 80
    Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
    httpd = SocketServer.TCPServer(("", PORT), Handler)
    httpd.serve_forever()

问题在于,由于httpd.serve_forever(),它会挂起程序的其余部分。我假设我可以使用线程在它自己的线程上运行它,所以程序的其余部分可以独立于服务器执行,但我不确定如何实现它。

4

1 回答 1

1

最简单的方法,直接来自文档

from threading import Thread

t = Thread(target=http_server)
t.start()

请注意,这个线程很难按原样杀死,KeyboardInterrupts 不会传播到您start()编辑的随机线程。您可能想要设置daemon=True或使用一些更复杂的方法来关闭它。

于 2013-07-18T01:12:02.817 回答