【发布时间】:2015-06-25 18:58:00
【问题描述】:
我有一些执行以下操作的代码:
- 创建一个进程(进程是solvePuzzle(filename))
- 运行进程
- 如果进程在 timeLimit 内完成,请执行一些操作
- 如果进程超时,请执行其他操作
我的问题是第三个任务;我希望能够获得已处理函数的返回值。这是我的代码(我编写了 p.returnValue() 语句,因为这是我想要做的):
#Start process
p = multiprocessing.Process(target=globals()['solvePuzzle'], args=(filename,))
p.start()
#Wait for timeLimit seconds or until process finishes
p.join(timeLimit)
#If thread is still active
if p.is_alive():
print "Puzzle timed out after " + str(timeLimit) + " seconds!"
# Terminate
p.terminate()
p.join()
else:
print "Solution = " + str(p.returnValue())
【问题讨论】:
-
使用队列将结果发送回主进程怎么样?
-
请参阅this question 了解如何将返回值返回给父级的示例。
标签: python multithreading python-2.7 parallel-processing return