您好,我正在使用多处理库运行main()
中的两个不同的函数:
Coap = multiprocessing.Process(target=runCoapSync(iotComponent))
huis=multiprocessing.Process(target=runHuis(iotComponent))
huis.start()
Coap.start()
问题是函数runHuis()
没有被触发,但是如果我注释了运行其他函数的行,则函数runHuis()
会按预期工作。我在代码的其他地方使用了相同的结构,但是效果很好。
这是两个函数的代码:
def runHuis(iotDevice):
print("----------------1---------------")
LCD=iotDevice.connectedHUIs[0]
while True:
LCD.alertHuman(iotDevice.connectedSensors[0].data.value)
def runCoapSync(iotDevice):
print("----------------2---------------")
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(runCoap(iotDevice))
答案 0 :(得分:2)
multiprocessing.Process
要求target是带有可选参数的可调用对象:
multiprocessing.Process(target=runCoapSync, args=(iotComponent,))
由于您正在调用它,因此其余程序将等待runCoapSync
完成。