Python несколько потоков/ несколько процессов для чтения последовательных портов

Я пытаюсь написать класс python, использующий параллельную обработку/поточность для чтения двух последовательных портов (/dev/ttyS1 и /dev/ttyS2). Оба эти порта работают на скорости 19200 бод и постоянно активны. Для этой цели я использовал pySerial.

Обе операции чтения должны выполняться непрерывно и одновременно. Я задаюсь вопросом, следует ли использовать библиотеку потоков, библиотеку потоков или библиотеку мультипроцессинга. Я беспокоюсь только из-за глобальной блокировки интерпретатора, которая не дает настоящей потоковой способности для тяжелых операций ввода-вывода. Но если глобальная блокировка интерпретатора не повлияет на меня, то я буду использовать модуль threading/thread. Однако если это произойдет, то мне нужно будет скомпилировать библиотеки многопроцессорной обработки python, потому что это встраиваемая система.

Таким образом, мой код обычно будет выглядеть следующим образом thread1 или process1 = чтение ttyS1 и запись в буфер после выполнения некоторых строковых операций над прочитанными строками. thread2 или process2 = чтение ttyS2 и запись в другой буфер после выполнения некоторых строковых операций над прочитанными строками. Другие функции и т.д. Эти буферы в дальнейшем используются другими частями кода.

Также требует ли многопроцессорность в python нескольких ядер/процессоров?

Спасибо за чтение!

6
задан kal 24 November 2011 в 17:19
поделиться