Я хотел бы запустить SimpleHTTPServer
в отдельном потоке, делая что-то еще (здесь time.sleep(100)
) в главном. Вот упрощенный пример моего кода:SimpleHTTPServer запущен как нить: не daemonize
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.start
для ее запуска.
Есть ли лучший способ выполнить эту задачу?
thread = threading.Thread (target = server.serve_forever) – vijay