我想在一個單獨的線程啓動SimpleHTTPServer
,而這樣做的主要的一個別的東西(在這裏,time.sleep(100)
)。這裏是我的代碼的簡化示例:SimpleHTTPServer推出作爲一個線程:不會守護進程
from SimpleHTTPServer import SimpleHTTPRequestHandler
from BaseHTTPServer import HTTPServer
server = HTTPServer(('', 8080), SimpleHTTPRequestHandler)
print 'OK UNTIL NOW'
thread = threading.Thread(target = server.serve_forever())
print 'STUCK HERE'
thread.setdaemon = True
try:
thread.start()
except KeyboardInterrupt:
server.shutdown()
sys.exit(0)
print 'OK'
time.sleep(120)
但是,線程保持「堵」,即沒有啓動的守護進程,並解釋未達到print 'OK'
。它並沒有達到STUCK HERE
。
雖然只有在調用threading.Thread(...)
時纔會初始化線程,並且主線程仍然會繼續,直到找到指令啓動它爲止。
有沒有什麼更好的方法來完成這項任務?
thread = threading.Thread(target = server.serve_forever) – vijay 2015-02-06 11:42:34