关于多线程:Python上的并行处理

Parallel Processing on Python

本问题已经有最佳答案,请猛点这里访问。

我是Python和多处理的初学者,所以如果这个问题看起来很幼稚,请原谅我。我有两个要同时运行的函数。一个是人脸识别的opencv实现,另一个是标准的python代码。

1
2
3
4
5
def main():
    does(s) # a function call

def face():
    recog.main() #another call

正如您所猜测的,这两个函数都是最终用户函数,您必须调用它们来实现任务。我希望他们两个同时运行。

以前关于这个主题的答案建议线程模块,但我已经尝试过了,它不起作用。第一个功能。先执行待调用,然后执行第二个。我的一个朋友推荐了Rospy模块。这是唯一的方法吗?感谢您的期待。

编辑:在这个问题的答案中,让两个函数同时运行,一个用户写到线程实际上不会使两个函数同时运行。


我使用多处理模块并行运行两个函数。我所做的(改变了你的处境):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import multiprocessing

def main():
    does(s) # a function call

def face():
    recog.main() #another call

# Initiate two workers for the two functions
workerMAIN = multiprocessing.Process(target=main)
workerFACE = multiprocessing.Process(target=face)

# Start the workers
workerMAIN.start()
workerFACE.start()

# Wait until the functions have finished
workerMAIN.join()
workerFACE.join()