【问题标题】:Python based Instrument locks基于 Python 的仪器锁
【发布时间】:2014-08-20 01:14:08
【问题描述】:

我正在 2 台不同的 PC 上运行程序,它们控制具有 2 个通道的相同电源。它与 TCP 连接。为了与电源通话,我使用的是 vxi_11。

当我在 2 台不同的 PC 上运行相同的程序时[我试图同时运行 2 台 PC,因为没有共享资源]

他们都通过 2 个不同的 TCPIp 连接与电源通信,但我看到的是我在另一台 PC 上获得了一台 PC 的输出。

我可以使用 rlocks 等等,但因为这是两个不同的程序正在运行。

我想有一些外部锁定机制,基本上是操作系统可以为我管理的东西。

谁能帮帮我。

提前致谢,

【问题讨论】:

    标签: python shared locks


    【解决方案1】:

    您可以flock 一个文件,该文件位于一个可从两个盒子访问的网络挂载位置。

    即类似:

    import fcntl
    
    # get the lock
    with open('file.lock', 'w') as f:
        fcntl.lockf(f, fcntl.LOCK_EX)
    
    # now proceed to do stuff with the lock in place
    

    其中file.lock 是指向网络挂载文件的完整文件路径。只要其他东西已经拥有排他锁,它就会阻塞。如果您想对其进行更多控制,即超时、记录尝试次数等。您可以按位或fcntl.LOCK_NB 标志与LOCK_EX - 即fcntl.LOCK_EX | fcntl.LOCK_NB - 和循环执行,当您访问锁时会中断;当非阻塞锁被阻塞时,会引发IOError 异常)。

    More flock Info

    【讨论】:

      猜你喜欢
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多