【发布时间】:2019-06-14 23:42:50
【问题描述】:
我有一个正在处理某些数据的函数,如果数据符合某个标准,则在处理其余数据时将单独处理它。
作为一个任意示例,如果我正在抓取网页并收集元素的所有属性,其中一个元素是一个表单并且恰好被隐藏,我想单独处理它,而其余的元素可以继续处理:
def get_hidden_forms(element_att):
if element_att == 'hidden':
os.fork()
# handle this seperate
else:
# continue handling any elements that are not hidden
#join both processes
这可以通过 os.fork() 完成还是用于其他目的?
我知道 os.fork() 会复制有关对象的所有内容,但我可以在分叉之前更改值,如 this post 中所述。
【问题讨论】:
-
反对使用
multiprocessing模块?为什么要一直下到os.fork()? -
@yorodm 不,我对多处理模块没有任何意见,我不确定是什么让你这么想,但是在阅读了模块上的文档后,我只是认为 os.fork() 会可能更适合我的需要。
-
这正是我所说的“反对它”的意思(又名对你不起作用)
-
@aeaglez 我和 yorodm 一起讨论这个问题;
os.fork按照 python 标准来说是非常低级的,它通常存在以填补特定的利基。multiprocessing提供了一个建立在forkAPI 之上的更健全的 API。
标签: python python-multiprocessing