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