文件名称:zksync:Zookeeper中用于Go语言的同步原语
文件大小:20KB
文件格式:ZIP
更新时间:2024-05-28 19:20:02
Go
zksync zksync提供了一个go实现,您可以在找到同步原语:锁和屏障。 这些可用于协调多个过程的计算。 RWMutex RWMutex提供读写锁定。 读者可以共享并发访问权限,只要作家没有领取该锁即可。 作家必须是排他性的,并且会阻塞其他任何锁具持有者。 锁的获取是按照先到先得的原则进行的,其顺序由ZooKeeper服务器确定。 锁存储为临时znode,因此,如果客户端意外断开与ZooKeeper的连接,则锁将在客户端建立连接的会话超时时间内释放。 障碍 Barrier为多个客户端提供了共享屏障。 设置障碍后,任何对Barrier.Wait调用Barrier.Wait将阻止障碍的任何客户端。 调用Barrier.Unset将取消阻止所有客户端。 设置障碍是一个固有的*过程。 如果障碍已经存在,客户端可以乐观地调用Barrier.Set并处理zk.ErrNodeExist
【文件预览】:
zksync-master
----zkutils.go(753B)
----barrier_test.go(3KB)
----vagrant()
--------zookeeper.conf(97B)
--------zookeeper.properties(1KB)
--------provision.sh(2KB)
--------run_toxiproxy.sh(804B)
--------toxiproxy.conf(96B)
----Vagrantfile(544B)
----logger.go(1KB)
----mutex.go(6KB)
----.travis.yml(181B)
----LICENSE(555B)
----double_barrier_test.go(6KB)
----doc.go(90B)
----README.md(3KB)
----double_barrier.go(6KB)
----integration_test.go(4KB)
----.gitignore(16B)
----barrier.go(2KB)
----mutex_test.go(7KB)
----zkutils_test.go(2KB)