【发布时间】:2013-08-06 19:40:20
【问题描述】:
我希望能够在多个应用程序中使用 USB 设备(例如,我运行一个 Flask Web 应用程序),确保一次只有一个使用它。
就我而言,我使用继电器来打开/关闭一扇门。门大约需要 20 秒才能打开。在此期间不应激活继电器,因为这会将门锁在中间。
提前致谢!
【问题讨论】:
-
你考虑过使用锁文件吗?
-
这样会很简单,但必须小心使用“安全技巧”,例如计时器,以避免资源因错误而被永久锁定。
-
是的,任何文件锁定机制都是如此。您可以在锁文件中写入进程的 PID,并在您尝试获取锁时检查它是否仍在运行,并在必要时实现额外的超时机制。
标签: python concurrency locking semaphore superglobals