Python 如何让一个类的多个实例并行运行一个方法?
所以本质上我有一个类定义如下Python 如何让一个类的多个实例并行运行一个方法?,python,python-3.x,Python,Python 3.x,所以本质上我有一个类定义如下 class SensorGrouping: def __init__(self, address, screen_identifier): self.factory = PiGPIOFactory(host=address) self.group_id = screen_identifier self.ir_sensor_vertical = MotionSensor(MOTION_PIN_VERTICAL, pin_fact
class SensorGrouping:
def __init__(self, address, screen_identifier):
self.factory = PiGPIOFactory(host=address)
self.group_id = screen_identifier
self.ir_sensor_vertical = MotionSensor(MOTION_PIN_VERTICAL, pin_factory=self.factory)
self.led = LED(LED_PIN, pin_factory=self.factory)
def wait_for_detection():
self.ir_sensor_vertical.wait_for_motion()
return self.group_id
其目的是拥有多个传感器分组类。等待,直到传感器被激活,否则运动()将处于空闲状态。我想做的是等待他们的一个红外传感器被触发,然后返回最先触发的传感器组的组id,在这个过程中杀死其他传感器。我已经研究过多处理的imap函数,但它似乎没有满足我的要求。有人有想法吗?你可以试试这样的方法:@mousetail我已经研究过了,但似乎没有办法强制线程终止,而且wait_for_motion()方法在它监视的运动传感器被激活之前不会返回,当它可能永远检测不到某个东西时,等待它是没有用的。终止线程的诀窍是对它等待的东西做一些事情。例如,如果您可以关闭self.ir\u sensor\u vertical,它很可能会返回到线程。对于可等待的东西来说,有一个异步选项是很常见的。可能是一个可以放入
select()
的套接字,或者是一个锁或互斥锁之类的东西。或者,它可以连接到一个异步框架中,比如python的asyncio。