我正在研究Raspberry Pi中的运动检测应用程序。有一个python脚本应检查c++
代码的输出,如果打印“alert”,它应该开始将图像从给定目录上传到服务器:
for line in self.output:
if line == "alert\n":
# upload a frame from directory to a server
但是,每个帧大约需要30秒才能上传到服务器,但每个新行在500毫秒内打印出来。因此,在if
循环的每个for
条件下等待上传当前帧是完全没有效率的。
我是Python新手。有没有办法并行运行两个方法?我知道线程,但我不确定如果for
循环每次在Raspberry Pi中创建新线程会发生什么。
答案 0 :(得分:0)
每次执行if语句时都会创建一个线程,它会执行然后停止(如果线程本身没有循环)。您可以使用以下语法。
def myFunc():
#does the stuff you want it to do
for line in self.output:
if line == "alert\n":
threading.Thread(target=myFunc,args=randomArgs)