【发布时间】:2015-12-30 00:33:07
【问题描述】:
我是 Python 初学者。我设法在多个并行进程中运行我的函数,但现在我想稍微重构它,我迷路了......
我想做的是:
- 使用 1 - x 参数(关键字)运行 main()
- main() 应该最大运行。 32/x 并行函数 search() 在每个关键字的单独池中
- search() 正在网页上寻找“关键字”字符串,一旦在任何进程(池中)中找到“关键字”,search() 应该返回 url,该 url 将传递给 download() 函数
- download() 函数应替换父池中的 search() 函数(就最大并行进程而言),其他池仍应搜索关键字
- 对所有其他池重复
例子:
- main("stack", "overflow")
- 应该有 2 个搜索池,一个用于“堆栈”,第二个用于“溢出”,每个应该有 16 个 search() 进程
- 找到关键字“stack”,search() 函数应替换为 16 个 download() 函数;未找到关键字“溢出”,在分离池中继续,分离进程
我当前的脚本是这样工作的:
- 启动 main()
- main() 产生 16x search()
- 一旦在任何 search() 进程中找到“string”,这个特定进程就会开始下载,所有其他进程仍在尝试搜索“string”(不再需要它)
我知道我不是很具体,但我认为你不需要看到我可怕的脚本就能理解我在寻找什么。
【问题讨论】:
标签: python parallel-processing python-multiprocessing