运行 悲情中并行的两个函数
Run two functions in parallel in pathos
我有两个不同的函数,比方说:
def foo(print_me):
print(print_me + " foo")
def foo2(print_me):
print(print_me + " foo2")
我想运行他们两个,平行的,悲伤的。
在多处理中我会做类似的事情:
process = [Process(target=foo, args=("HI")),Process(target=foo2, args=("HI2")]
map(lambda p: p.start(), process)
map(lambda p: p.join(), process)
我怎样才能在悲伤中做类似的事情?
P.S
我不能使用 python 多处理,因为在实际函数中,我使用的是 spacy
,它不能使用多处理(由于 pickle 错误)。
像这样:
>>> def foo(print_me):
... print(print_me + " foo")
...
>>> def foo2(print_me):
... print(print_me + " foo2")
...
>>> from pathos.helpers import mp
>>> process = [mp.Process(target=foo, args=("HI",)),mp.Process(target=foo2, args=("HI2",))]
>>> r1 = map(lambda p: p.start(), process)
>>> r2 = map(lambda p: p.join(), process)
>>> r1 = list(r1); r1 = list(r2)
HI foo
HI2 foo2
>>>
我还更正了您上面代码中的错别字,但您的问题中没有。
我有两个不同的函数,比方说:
def foo(print_me):
print(print_me + " foo")
def foo2(print_me):
print(print_me + " foo2")
我想运行他们两个,平行的,悲伤的。
在多处理中我会做类似的事情:
process = [Process(target=foo, args=("HI")),Process(target=foo2, args=("HI2")]
map(lambda p: p.start(), process)
map(lambda p: p.join(), process)
我怎样才能在悲伤中做类似的事情?
P.S
我不能使用 python 多处理,因为在实际函数中,我使用的是 spacy
,它不能使用多处理(由于 pickle 错误)。
像这样:
>>> def foo(print_me):
... print(print_me + " foo")
...
>>> def foo2(print_me):
... print(print_me + " foo2")
...
>>> from pathos.helpers import mp
>>> process = [mp.Process(target=foo, args=("HI",)),mp.Process(target=foo2, args=("HI2",))]
>>> r1 = map(lambda p: p.start(), process)
>>> r2 = map(lambda p: p.join(), process)
>>> r1 = list(r1); r1 = list(r2)
HI foo
HI2 foo2
>>>
我还更正了您上面代码中的错别字,但您的问题中没有。