如何使用并行使用两个循环,Python?

时间:2015-12-23 04:59:19

标签: python multithreading upload callback sftp

我正在研究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中创建新线程会发生什么。

1 个答案:

答案 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)