2015-12-23 2 views
0

Я работаю над приложением обнаружения движения в Малиновой Пи. Существует питон скрипт, который должен проверить вывод c++ кода и, если печатаются «предупреждение», он должен начать загружать изображения из данного каталога на сервер:Как использовать две параллельные петли, Python?

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

перейдите по ссылке http://stackoverflow.com/questions/2846653/python-multithreading-for-dummies – Serjik

ответ

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) 
Смежные вопросы