Erlang是否有进程间(我指的是Linux或Windows进程)锁定机制,如flock?
使用情况如下:
发布于 2013-05-21 15:46:42
如果您的意思是在Erlang进程之间,不,它有进程间锁定机制.这不是控制对共享资源的访问的Erlang方式。通常,如果您想控制对资源的访问,您有一个Erlang进程,它管理资源,而对资源的所有访问都经过这个过程。这意味着我们不需要进程间锁或互斥锁来控制访问。它也是安全的,因为您无论如何都不能“欺骗”和访问,并且管理过程可以检测客户端是否死在事务过程中。
发布于 2013-05-23 11:37:42
在Erlang中,您可能会使用不同的方法来解决这个问题。想到的一件事是保留一个处理所有存储库的Erlang node()。它有一个lock_mgr进程,它执行资源锁管理。
当另一个节点或escript想要运行时,它可以通过分发连接到正在运行的Erlang节点并请求锁定。
发布于 2013-05-22 21:03:35
有模块global可以满足您的需要。
global:set_lock/1,2,3
为ResourceId上的LockRequesterId设置指定节点的锁(如果没有指定,则在所有节点上设置锁)。
https://stackoverflow.com/questions/16652664
复制相似问题