Python中的信号灯锁定机制

时间:2019-10-30 10:01:32

标签: python locking python-multiprocessing semaphore

我目前正在从事一个涉及共享relay_CAN的项目。我必须编写一个Python脚本,以便在中继被其他设备使用后锁定它。继电器应被锁定,直到从另一个终端解锁为止。如果在锁定状态下呼叫任何其他设备,则应等待其解锁。我尝试使用Lock(),Condition(),但似乎没有任何效果。有线索吗?

sem = threading.Semaphore()

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--connect",
                        help="""connects devices""",
                        dest="connect")
    parser.add_argument("--disconnect",
                        help="""disconnects devices""",
                        dest="disconnect")
    args, _ = parser.parse_known_args()


    if args.connect:
        if sem.acquire(False):
            sem.acquire()
            print "locking.."
            try:
                #todo
            finally:
                print"locked successefully"
        else:
            print "pins are locked"

0 个答案:

没有答案