首先,我是threadingPython 的新手,实际上对 Python 来说还很陌生,所以如果问题问得不好,请原谅。
我有 2 个模块,每个模块包含一个类。这些类都是threading.Thread. 我从第三个模块启动这两个线程main.py:
from controller import Controller
from server import Server
from ultrasonic import Ultrasonic
if __name__ == "__main__":
controller = Controller()
server = Server(controller)
server.start()
ultrasonic = Ultrasonic(controller)
ultrasonic.start()
如您所见,两个线程都访问不同模块中的另一个类,Controller. 为了确保这两个线程在调用 的方法时不会发生干扰Controller,我想同步这些线程。我看到,有 using 的选项threading.Lock,但我不确定如何在我的特定情况下使用threading.Thread不同模块中的不同子类来实现它。
我希望你们能帮助我。谢谢!
编辑:类 中的方法Controller如下所示:
def stop(self):
GPIO.output(self.LEFT_PIN1, False)
GPIO.output(self.LEFT_PIN2, False)
GPIO.output(self.RIGHT_PIN1, False)
GPIO.output(self.RIGHT_PIN2, False)
我认为如果 GPIO 引脚收到相反的信号可能会导致问题。如果不是这种情况,那么我一开始就不需要同步线程。
杨__羊羊
相关分类