主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

mps.sync.mutex

创建持久性服务互斥锁

说明

lk = mps.sync.mutex(mutexName,'Connection',connectionName) 创建一个数据库咨询锁对象。

示例

lk = mps.sync.mutex(mutexName,'Connection',connectionName,'Expiration',expirationTime) 创建一个数据库咨询锁对象。

示例

示例

全部折叠

首先,创建一个持久性服务控制器对象并使用该对象启动持久性服务。

ctrl = mps.cache.control('myRedisConnection','Redis','Port',4519);
start(ctrl)

使用连接名称创建持久性服务互斥锁。

lk = mps.sync.mutex('myMutex','Connection','myRedisConnection')
lk = 

  TimedRedisMutex with properties:

        Expiration: 10
    ConnectionName: 'myRedisConnection'
         MutexName: 'myMutex'

输入参数

全部折叠

持久性服务互斥锁的名称,指定为字符向量。

示例: 'myMutex'

与持久性服务的连接名称,指定为字符向量。

示例: 'Connection','myRedisConnection'

获取锁后的过期时间(以秒为单位),指定为正整数。

即使您不释放锁,其他客户端也将能够获取锁。

示例: 'Expiration', 10

输出参量

全部折叠

一个持久服务互斥对象。如果您使用 Redis™ 作为持久性提供程序,lk 将是 mps.sync.TimedRedisMutex 对象。如果您使用 MATLAB® 作为持久性提供程序,lk 将是 mps.sync.TimedMATFileMutex 对象。

提示

  • 持久性服务互斥锁允许多个客户端轮流使用共享资源。每个合作客户端使用与共享持久性服务的连接创建具有相同名称的互斥锁对象。为了获得对共享资源的独占访问权限,客户端会尝试获取互斥锁。当客户端完成对共享资源的操作时,它会释放锁。为了防止锁定客户端崩溃时发生锁定,所有锁定都会在一定时间后过期。

  • 获取互斥锁的锁可防止其他客户端获取该互斥锁的锁,但不会锁定持久性服务或存储在持久性服务中的任何键或值。这些锁仅供参考,旨在供合作客户端使用,以防止数据损坏。如果恶意客户端不自愿遵守互斥锁,它们将能够破坏或删除数据。

版本历史记录

在 R2018b 中推出