Объект встроенный объект

Блокировка объекта

Волоконный замок

В отличие от блокировки операционной системы, волоконно-оптическая блокировка реализована с помощью чистой логики, а нагрузка на блокировку и разблокировку очень мала

1 2 3 4
var l = new coroutine.Lock(); l.acquire(); ..... l.release();

наследование

%0 object object toString() toJSON() Lock Lock new Lock() acquire() release() count() object->Lock Condition Condition Lock->Condition Event Event Lock->Event Semaphore Semaphore Lock->Semaphore

Конструктор

Lock

Конструктор

1
new Lock();

Функция-член

acquire

Взять на себя ответственность за замок

1
Boolean Lock.acquire(Boolean blocking = true);

Параметры вызова:

  • blocking : Boolean, указать, нужно ли ждать, ждать, если true, по умолчанию true

Вернуть результат:

  • Boolean , возвращает, была ли блокировка успешно получена, true означает успешное получение

Метод получения используется для получения владения блокировкой. Когда блокировка находится в состоянии получения, этот метод немедленно возвращает true.

Когда блокировка недоступна и блокировка имеет значение true, текущее волокно переходит в спящий режим. Когда другие волокна снимают блокировку, этот метод возвращает значение true.

Когда блокировка недоступна и блокировка ложна, метод возвращает ложь.


release

Отпустить право собственности на замок

1
Lock.release();

Этот метод освободит владение блокировкой. Если текущее волокно не владеет блокировкой, этот метод выдаст ошибку.


count

Запрос текущего количества ожидающих задач

1
Integer Lock.count();

Вернуть результат:

  • Integer , возвращает количество задач

toString

Возвращает строковое представление объекта, обычно возвращает «[Native Object]», объект может быть переопределён согласно его собственным характеристикам

1
String Lock.toString();

Вернуть результат:

  • String , возвращает строковое представление объекта

toJSON

Возвращает представление объекта в формате JSON, обычно возвращает коллекцию читаемых атрибутов, определенных объектом

1
Value Lock.toJSON(String key = "");

Параметры вызова:

  • key : строка, не используется

Вернуть результат:

  • Value , возвращает значение, содержащее сериализуемый JSON