使用Python的多处理



我有两个并行处理的函数。我想不断检查函数,它们什么时候运行,什么时候完成。我该怎么做。我试了几件事,但都没用。我的代码看起来像:

q1 = multiprocessing.Queue()
q2 = multiprocessing.Queue()
p1 = Process(target = fun1, args = (arg1,arg2,q1))
p2 = Process(target = fun2, args = (arg1,arg2,q2))
p1.start()
p2.start()

基本上是试图获得一条消息,比如:'fun1 is running',执行后:'fun1 ended, total time= t'fun2也是如此。

您可以使用装饰器

将您的函数包装在一个为您设计的装饰器中。

import time
def timed(func):
def _wrapper(*args, **kwargs):
start = time.time()
print(f"{func.__name__} has started")
result = func(*args, **kwargs)
end = time.time()
print(f"{func.__name__} ended. Took: {end-start}s")

return result
return _wrapper

p1 = Process(target = timed(fun1), args = (arg1,arg2,q1))
p1.start()

相关内容

  • 没有找到相关文章

最新更新