在Raspberry Pi上,我运行两个进程,这两个进程不断循环,直到触发一个停止其中一个进程的输入,但是如何停止这两个进程呢?唯一有效的方法就是在控制台中按control+c,我现在不能让它停止使用代码。在
def stopButton():
while 1:
wiringpi2.pinMode(52,0)
stopBut = wiringpi2.digitalRead(52)
print (stopBut)
wiringpi2.delay(500)
if (stopBut == 0):
stopBlink()
def stopBlink():
redBlink = int(0)
while (redBlink < int(20)):
wiringpi2.digitalWrite(pin2,HIGH)
wiringpi2.delay(50)
wiringpi2.digitalWrite(pin2,LOW)
wiringpi2.delay(50)
redBlink += int(1)
上述代码只是寻找一个按钮按下,一旦按钮按下,它触发停止闪烁功能,闪烁红色LED 20次。在
^{pr2}$上面的代码只是在循环中闪烁一个蓝色的LED灯。在
if __name__ == '__main__':
try:
P1 = Process(target = stopButton)
P2 = Process(target = testRunning)
P1.start()
P2.start()
P1.join()
P2.join()
现在,当我点击stopprink函数时,我希望它停止所有其他正在运行的进程,但是我似乎无法让它停止testRunning函数。我试着增加
sys.exit(1)
对stopbink函数,但它不影响其他函数的运行。在
您可以使用
multiprocessing.Event
进行进程间同步。在下面是一个类似的例子:
我不知道Raspberry Pi是否有特殊的要求,但这是您如何以更通用的方式处理python线程和进程的。在
相关问题 更多 >
编程相关推荐