【问题标题】:How to use use two loops parallel, Python?如何使用并行使用两个循环,Python?
【发布时间】:2015-12-23 04:59:18
【问题描述】:

我正在研究 Raspberry Pi 中的运动检测应用程序。有一个 python 脚本应该检查c++ 代码的输出,如果打印了“alert”,它应该开始将图像从给定目录上传到服务器:

for line in self.output:
  if line == "alert\n":
    # upload a frame from directory to a server

但是,每帧上传到服务器大约需要 30 秒,但每个新行会在 500 毫秒内打印出来。因此,在for 循环的每个if 条件下等待上传当前帧根本没有效率。

我是 Python 新手。有没有办法并行运行两种方法?我知道线程,但我不确定如果for 循环每次在 Raspberry Pi 中创建新线程会发生什么。

【问题讨论】:

  • 您应该启动一个 单个 新线程并有一个操作队列供其完成。这意味着操作将按顺序完成而不会阻塞您的主线程。

标签: python multithreading upload callback sftp


【解决方案1】:

每次执行 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)

【讨论】:

    猜你喜欢
    • 2019-12-11
    • 2021-04-09
    • 2022-06-10
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多