防止并发访问代码段。如果您有多个用户或进程修改共享资源,并且希望防止发生冲突,这种做法将非常有用。
方法
方法 | 返回类型 | 简介 |
---|---|---|
getDocumentLock() | Lock | 获取锁,以防止当前文档的任何用户同时运行一段代码。 |
getScriptLock() | Lock | 获取锁,以防止任何用户并发运行一段代码。 |
getUserLock() | Lock | 获取锁,以防止当前用户同时运行一段代码。 |
详细文档
getDocumentLock()
获取锁,以防止当前文档的任何用户同时运行一段代码。受文档锁保护的代码段可以由在不同文档环境中运行的脚本实例同时执行,但对于任何给定文档,其执行次数不得超过一次。请注意,在调用 Lock.tryLock(timeoutInMillis)
或 Lock.waitLock(timeoutInMillis)
之前,系统不会实际获取锁。如果在所属文档的上下文之外(例如从独立脚本或 Web 应用)调用此方法,系统会返回 null
。
弃踢回攻
Lock
- 范围限定为脚本和当前文档的锁,或者从独立脚本或 Web 应用调用的 null
getScriptLock()
获取锁,以防止任何用户并发运行一段代码。无论用户的身份如何,受脚本锁保护的代码部分都无法同时执行。请注意,在调用 Lock.tryLock(timeoutInMillis)
或 Lock.waitLock(timeoutInMillis)
之前,系统不会实际获取锁。
弃踢回攻
Lock
- 锁定范围限定为脚本
getUserLock()
获取锁,以防止当前用户同时运行一段代码。受用户锁保护的代码段可以由不同的用户同时执行,但任何给定用户只能执行一次。此锁对用户来说是“私有”的。请注意,在调用 Lock.tryLock(timeoutInMillis)
或 Lock.waitLock(timeoutInMillis)
之前,实际上不会获得锁。
弃踢回攻
Lock
- 锁定范围限定为脚本和当前用户