Python中的信号量锁定机制

Python中的信号量锁定机制,python,locking,python-multiprocessing,semaphore,Python,Locking,Python Multiprocessing,Semaphore,我目前正在从事一个项目,该项目涉及到继电器的共享。我必须编写一个Python脚本,以便在中继被其他设备使用时锁定它。继电器应锁定,直到从另一个端子解锁。如果我在锁定时调用任何其他设备,它应该等待解锁。我试过使用、Lock()、Condition(),但似乎没有任何效果。有线索吗 sem=threading.Semaphore() def main(): parser=argparse.ArgumentParser() parser.add_参数(“--connect”, 帮助=“连接设备”, d

我目前正在从事一个项目,该项目涉及到继电器的共享。我必须编写一个Python脚本,以便在中继被其他设备使用时锁定它。继电器应锁定,直到从另一个端子解锁。如果我在锁定时调用任何其他设备,它应该等待解锁。我试过使用、Lock()、Condition(),但似乎没有任何效果。有线索吗

sem=threading.Semaphore()
def main():
parser=argparse.ArgumentParser()
parser.add_参数(“--connect”,
帮助=“连接设备”,
dest=“连接”)
parser.add_参数(“--disconnect”,
help=“”断开设备“,
dest=“断开连接”)
args,u=parser.parse_known_args()
如果args.connect:
如果sem.acquire(错误):
sem.acquire()
打印“锁定…”
尝试:
#待办事项
最后:
打印“已成功锁定”
其他:
打印“PIN已锁定”

您能发布您尝试过的代码吗?对不起。现在检查它。然后执行同样的操作,将文件\u lock更改为.Semaphore(set\u size)not.lock()(假定代码原因未发布)。信号灯内部使用锁,就像一个允许通过的锁列表X@Wonka我也试过了。现在检查代码。我已经发布了。是的,我检查过了,但是你错过了一些代码,比如锁声明。-->Semphore(2)将允许2次通过内部。(默认值为1,其作用与锁定相同)。