Python中的线程/多处理

时间:2013-07-18 00:38:05

标签: python python-2.7 python-multithreading

我有以下代码:

import SimpleHTTPServer
import SocketServer

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

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

1 个答案:

答案 0 :(得分:1)

最简单的方法,直接来自docs

from threading import Thread

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

请注意,此线程很难按原样终止,KeyboardInterrupts不会传播到您start()编辑的随机线程。您可能需要设置daemon=True或使用更复杂的方法将其关闭。