Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在node.js中实现互斥_Node.js_Mutex - Fatal编程技术网

在node.js中实现互斥

在node.js中实现互斥,node.js,mutex,Node.js,Mutex,我想在node.js应用程序中实现一个互斥体,下面是wiki中的互斥体 这个主题有现成的模块吗?如果没有,有什么想法可以帮助我实现吗?有很多方法可以实现这一点。两种简单的方法是通过Redis或Zookeeper服务器。Node.js对于这两个模块都有非常好的模块 在Redis中,您可以使用+命令来实现锁定。在Zookeeper中,可以创建临时节点。在这两种情况下,没有两个进程会同时执行关键操作 我最近在一个模块中实现了Redis方法,该模块是我们生产应用程序的关键部分,我们需要确保没有两个过程在

我想在node.js应用程序中实现一个互斥体,下面是wiki中的互斥体


这个主题有现成的模块吗?如果没有,有什么想法可以帮助我实现吗?

有很多方法可以实现这一点。两种简单的方法是通过Redis或Zookeeper服务器。Node.js对于这两个模块都有非常好的模块

在Redis中,您可以使用+命令来实现锁定。在Zookeeper中,可以创建临时节点。在这两种情况下,没有两个进程会同时执行关键操作

我最近在一个模块中实现了Redis方法,该模块是我们生产应用程序的关键部分,我们需要确保没有两个过程在Redis中增加相同的价值。有关详细信息,请参阅和。事实上,代码很容易理解和阅读

有关Zookeeper示例,请参阅。对于带有临时节点的分布式锁,可以实现更复杂的逻辑。Redis解决方案只是一个特例,如果您不需要更多的解决方案,它将非常有效


使用这两种方法,您可以为任何应用程序和任何逻辑实现互斥体。

为什么在nodejs中需要互斥体?它还是以单线程的方式执行代码。或者您想要跨进程互斥体?用于文件I/O互斥体,例如从多个线程访问文件,您可以按照此线程中的建议使用