通过多线程启动多进程失败

2019-04-04 07:05:18 +08:00
 tz1006
我用 concurrent.futures 的 ThreadPoolExecutor 和 ProcessPoolExecutor
总体路径是,启动一个线程后台循环,当线程满足条件,启动多进程。
先用 ThreadPoolExecutor 开启一个后台线程循环监视 Queue,当 Queue 中被添加后,在线程中运行 self.Execute()
self.Execute() 会创建很多进程。
目前遇到的问题是:
在‘__main__'条件下,手动运行 self.Execute()一切正常。
用进程后台运行时,满足条件 self.Execute()执行后,进程被创建,但是一直是启动状态,不结束也不报错。
请问有解决方案吗?
1688 次点击
所在节点    Python
3 条回复
shyrock
2019-04-04 09:03:51 +08:00
你的进程终止条件是什么?
ebingtel
2019-04-04 09:16:46 +08:00
手动执行,有 tty ;后台运行没有 tty ……从 tty 入手看看
tz1006
2019-04-05 17:07:18 +08:00
@shyrock 进程运行完成后全部 return 回来, 用.result()取回。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/551872

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX