Запускать несколько независимых функций void, используя Multiprocessing

Как запустить несколько (скажем, 6) независимых функций, используя многопроцессорность Python? Я искал соответствующие примеры, но я не смог найти ни одного примера, который бы демонстрировал пример для функций без аргументов. Есть ли способ достичь такой функциональности, как показано на прилагаемом рисунке, используя многопроцессорность? Я ищу пример кода структуры, который я могу использовать и строить на основе.

Предполагаемая структура кода

Изменить: вот пример того, что я делаю:

import multiprocessing
from multiprocessing import Process
from multiprocessing import Pool
import time
import obd
import RPi.GPIO as GPIO
import time
from ctypes import*
from mcp3208 import MCP3208
from mq import MQ
from smokeSensor import smokePercentage
adc = MCP3208()
GPIO.setmode(GPIO.BCM)
#------Temperature Sensor Module-----------------------
bmp280_lib = CDLL('/home/pi/OBIBB/TempNew/_bmp280_driver.so')
#bmp280_lib = CDLL('/usr/local/lib/_bmp280_driver.so')
bmp280_lib.bmp280GetTempReadings.restype = c_double
bmp280_lib.DisplayAdds.restype = c_void_p
bmp280_lib.bmp280Setup()
################ OBD initialization #########################
ports = obd.scan_serial()       # return list of valid USB or RF ports
print ports                    # ['/dev/ttyUSB0', '/dev/ttyUSB1']
connection = obd.OBD() # auto-connects to USB or RF port


def Read_RPM:
        RESP_RPM = connection.query(cmdrpm)
        return RESP_RPM.value


#cmdrpm = obd.commands.RPM #  OBD command (for reading speed)
def ReadHumidity (Channel):
        # The read_adc function will get the value of the specified channel (0-7).
        readData = adc.read(Channel)
                v_in= (readData*3.3)/4096
                RH=(((v_in/v_supp)-0.1515)/0.00636)
        # Return the ADC values.
        return RH
#################################################
def READ_SENSORS(return_dict):
        v_in = 0
        RH=0
        v_supp=3.3
        HumdityChannel = 0
        T = bmp280_lib.bmp280GetTempReadings()
        Humd = ReadHumidity (HumdityChannel)
        smok = smokePercentage()
        print T
        print Humd
        print smok

def displayAdds():
        os.system("sh kda-chowrangi.sh")

def runInParallel(*fns):
  proc = []
  for fn in fns:
        p = Process(target=fn)
        p.start()
        proc.append(p)
  for p in proc:
        p.join()

if __name__ == '__main__':
        runInParallel(READ_SENSORS)
        pool = Pool(processes=10)
        pool.map_async(displayAdds)

0 ответов

Другие вопросы по тегам