0

Спасибо, что нашли время, чтобы проверить это.Функции многопроцессорности Python

Я делаю линию, следующую за роботом, и я застрял! У меня есть 2 датчика, и я написал функцию для чтения, которая возвращает целые числа. Мне нужно одновременно запускать 2 функции, по одному для каждого датчика ...

По существу, происходит три вещи.

  • Read1() считывает левый датчик и постоянно обновляет переменную (while loop)

  • Read6() читать правый датчик и постоянно обновляет переменную (while loop)

  • Main() принимает две переменные и наборы соответственно.

мне нужно Read1() и Read6() вырваться в свои собственные потоки так Main() не блокированы их ждет.

Спасибо!

ответ

0

Это код psedue, который поможет вам понять, как реализовать это с помощью многопоточности

import threading 

thread1 = Read1() 
thread2 = Read1() 
thread1.start() # This actually causes the thread to run 
thread2.start() 
thread1.join() # This waits until the thread has completed 
thread2.join() 
# At this point, both threads have completed 
Main (thread1.total, threat2.total) 

Просто Примечание: Для фактического распараллеливания в Python, вы должны использовать multiprocessing модуль раскошелиться несколько процессов, которые выполняются параллельно (из-за блокировки глобального интерпретатора потоки Python обеспечивают чередование, но на самом деле выполняются серийно, а не параллельно, и полезны только при чередовании операций ввода-вывода).

+0

Спасибо за предложение! Нить 1 начинается, но нить 2 - нет. На самом деле смутно! если функция возвращается, поток заканчивается и он отказывается начинать заново, поэтому я заставил функцию не возвращать ничего, чтобы обойти это, и теперь я не могу запустить второй поток. Срыв! ха-ха –

Смежные вопросы