Предотвращает одновременный доступ к разделам кода. Это может быть полезно, когда у вас есть несколько пользователей или процессов, изменяющих общий ресурс, и вы хотите предотвратить конфликты.
Методы
Метод | Тип возврата | Краткое описание |
---|---|---|
getDocumentLock() | Lock | Получает блокировку, не позволяющую любому пользователю текущего документа одновременно запускать раздел кода. |
getScriptLock() | Lock | Получает блокировку, не позволяющую любому пользователю одновременно запускать раздел кода. |
getUserLock() | Lock | Получает блокировку, не позволяющую текущему пользователю одновременно запускать раздел кода. |
Подробная документация
getDocumentLock()
Получает блокировку, не позволяющую любому пользователю текущего документа одновременно запускать раздел кода. Раздел кода, защищенный блокировкой документа, может выполняться одновременно экземплярами скрипта, работающими в контексте разных документов, но не более чем одним выполнением для любого данного документа. Обратите внимание, что блокировка фактически не устанавливается до тех пор, пока не Lock.tryLock(timeoutInMillis)
или Lock.waitLock(timeoutInMillis)
. Если этот метод вызывается вне контекста содержащего его документа (например, из автономного скрипта или веб-приложения), возвращается null
.
Возвращаться
Lock
— блокировка, ограниченная сценарием и текущим документом, или null
, если вызывается из автономного скрипта или веб-приложения.
getScriptLock()
Получает блокировку, не позволяющую любому пользователю одновременно запускать раздел кода. Раздел кода, защищенный блокировкой скрипта, не может выполняться одновременно, независимо от личности пользователя. Обратите внимание, что блокировка фактически не устанавливается до тех пор, пока не Lock.tryLock(timeoutInMillis)
или Lock.waitLock(timeoutInMillis)
.
Возвращаться
Lock
— блокировка, ограниченная сценарием.
getUserLock()
Получает блокировку, не позволяющую текущему пользователю одновременно запускать раздел кода. Участок кода, защищенный пользовательской блокировкой, может выполняться одновременно разными пользователями, но не более чем одним выполнением для одного пользователя. Блокировка является «частной» для пользователя. Обратите внимание, что блокировка фактически не устанавливается до тех пор, пока не Lock.tryLock(timeoutInMillis)
или Lock.waitLock(timeoutInMillis)
.
Возвращаться
Lock
— блокировка, ограниченная сценарием и текущим пользователем.