Python - 做并行延迟子进程而不是等待的简单方法

时间:2014-02-02 21:19:53

标签: python parallel-processing subprocess delay

我是编程新手,我有一个python脚本检查数据库,然后激活一些继电器一段时间。我将睡眠时间放在下面的代码中,但问题是程序等待每个延迟,当我按下一个接一个按钮时,第二个继电器等待第一个完成。有没有办法启动一个只是打开和关闭继电器然后自行终止的并行进程?我查看了子进程,但说实话我不太了解如何使用它,我找不到一个简单的例子,告诉你如何并行启动一个简单的函数。

while True:
    cursor.execute("""SELECT pinNumber, delayTime FROM expanders WHERE request = 1""")
    row = cursor.fetchall ()
    resetRequest = 0
    for r in row:
        pinNumber = int(r[0])
        delayTime = int(r[1])
        voltage = 0
        newVoltage = 1
        wiringpi.digitalWrite(pinNumber, newVoltage)
        print ('Relay %s = %s' % (pinNumber, newVoltage))
        sleep (delayTime)
        wiringpi.digitalWrite(pinNumber, voltage)
        print ('Relay %s = %s' % (pinNumber,voltage))
    sleep(0.1)

1 个答案:

答案 0 :(得分:0)

你想要的是multiprocessing包。

from multiprocessing import Process

def f(name):
    print('hello ', name)

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    # do something here
    p.join()