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.start
명령을 실행할 때까지 계속 진행할 것입니다.
이 작업을 수행하는 더 좋은 방법이 있습니까?
:
이 되려면 thread = threading.Thread (target = server.serve_forever) – vijay