我们的服务器集群由 20 台机器组成,每台机器有 10 个 5 个线程的 pid。我们想要某种方法来防止任何机器上任何 pid 中的任何两个线程同时修改同一个对象。
我们的代码是用 Python 编写的并在 Linux 上运行(如果这有助于缩小范围)。
另外,两个这样的线程想要执行此操作的情况非常罕见,因此我们更希望能够优化“只有一个线程需要此对象”的情况,使其速度非常快,即使这意味着“一个线程已锁定”这个对象和另一个对象需要它”的情况不太好。
有哪些最佳实践?
如果你想跨机器同步,你需要一个分布式锁管理器 http://en.wikipedia.org/wiki/Distributed_lock_manager.
我快速谷歌搜索了一下并想出了:堆栈溢出 https://stackoverflow.com/questions/1059580/distributed-lock-service。
不幸的是他们只建议 Java 版本,但这是一个开始。
如果您尝试同步对文件的访问:您的文件系统应该已经有一些锁定服务。如果没有考虑改变它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)