Erlang是否有一个进程间(我的意思是Linux或Windows进程)锁定机制,如flock?
用法如下:
答案 0 :(得分:5)
如果你的意思是在Erlang进程之间,不,它有进程间锁定机制。这不是Erlang控制对共享资源的访问的方式。通常,如果要控制对资源的访问,则需要使用Erlang进程来管理资源,并且对资源的所有访问都要经过此过程。这意味着我们不需要进程间锁或互斥锁来控制访问。它也是安全的,因为你不能“欺骗”和访问,管理过程可以检测客户是否在交易过程中死亡。
答案 1 :(得分:1)
在Erlang中,您可能会使用不同的方法来解决这个问题。想到的一件事是保留一个处理所有存储库的Erlang node()
。它有一个lock_mgr
进程来执行资源锁管理。
当另一个节点或escript想要运行时,它可以通过分发连接到正在运行的Erlang节点并请求锁定。
答案 2 :(得分:0)
模块global
可以满足您的需求。
global:set_lock/1,2,3
在LockIquesterId的ResourceId上为指定节点(如果没有指定任何节点)设置锁定。