我正在运行以下Python代码:
它结束了。
当我将
这段文字的大意是:脚本一直在运行,这正是我所期望的。如果假设非守护进程 t 不会停止,在第一种情况下 p 会停止吗?我设置了一个小测试,因为我一直在开发一个应用程序,在该应用程序中,线程会在子进程内创建,并且表现出一些奇怪的行为(有时会正常终止,有时不会)。我想我想要知道的更广泛的问题是,当混合使用这两个 Python 库时是否存在某种“陷阱”。我的运行环境是:Python 2.7 @ Ubuntu 14.04 LTS。
import threading
import multiprocessing
def forever_print():
while True:
print("")
def main():
t = threading.Thread(target=forever_print)
t.start()
return
if __name__=='__main__':
p = multiprocessing.Process(target=main)
p.start()
p.join()
print("main process on control")
它结束了。
当我将
main
从新进程中解包,并直接像这样直接运行它时:if name == '__main__':
main()
这段文字的大意是:脚本一直在运行,这正是我所期望的。如果假设非守护进程 t 不会停止,在第一种情况下 p 会停止吗?我设置了一个小测试,因为我一直在开发一个应用程序,在该应用程序中,线程会在子进程内创建,并且表现出一些奇怪的行为(有时会正常终止,有时不会)。我想我想要知道的更广泛的问题是,当混合使用这两个 Python 库时是否存在某种“陷阱”。我的运行环境是:Python 2.7 @ Ubuntu 14.04 LTS。
main
终止时继续运行吗?这不是t.daemon=False
的作用吗? - bsam