假设我有这样一个东西:
import threading
import time
_FINISH = False
def hang():
while True:
if _FINISH:
break
print 'hanging..'
time.sleep(10)
def main():
global _FINISH
t = threading.Thread(target=hang)
t.setDaemon( True )
t.start()
time.sleep(10)
if __name__ == '__main__':
main()
如果我的线程是守护进程,我是否需要一个全局_FINISH来控制break循环的退出子句?我尝试过,似乎不需要它-当程序退出(在这种情况下是在睡眠之后)时,程序终止,从而也关闭了线程。
但我也看到过那段代码-这只是不好的实践吗?我能否没有全局标志来控制循环?