如何 运行 python 中的后台线程
How to run a thread in the background in python
class CORSRequestHandler (SimpleHTTPRequestHandler):
def do_GET(self):
thread1 = threading.Thread(target=test())
thread1.daemon = True
thread1.start()
return SimpleHTTPRequestHandler.do_GET(self)
def test():
while True:
print "Hello"
time.sleep(2)
if __name__ == '__main__':
BaseHTTPServer.test(CORSRequestHandler, BaseHTTPServer.HTTPServer)
我需要 运行 服务器同时在后台打印 Hello。你能告诉我我做错了什么吗,因为如果尝试输入 url 页面永远不会加载。但是正在打印 Hello 并且服务器确实启动了。
您需要在 threading.Thread
的 target
关键字参数中传递方法 test
,而不是 test
returns。
所以,替换
thread1 = threading.Thread(target=test())
和
thread1 = threading.Thread(target=test)
当您执行 target=test()
测试方法时立即调用,因此无限循环和请求永远不会 returns。
class CORSRequestHandler (SimpleHTTPRequestHandler):
def do_GET(self):
thread1 = threading.Thread(target=test())
thread1.daemon = True
thread1.start()
return SimpleHTTPRequestHandler.do_GET(self)
def test():
while True:
print "Hello"
time.sleep(2)
if __name__ == '__main__':
BaseHTTPServer.test(CORSRequestHandler, BaseHTTPServer.HTTPServer)
我需要 运行 服务器同时在后台打印 Hello。你能告诉我我做错了什么吗,因为如果尝试输入 url 页面永远不会加载。但是正在打印 Hello 并且服务器确实启动了。
您需要在 threading.Thread
的 target
关键字参数中传递方法 test
,而不是 test
returns。
所以,替换
thread1 = threading.Thread(target=test())
和
thread1 = threading.Thread(target=test)
当您执行 target=test()
测试方法时立即调用,因此无限循环和请求永远不会 returns。