オブジェクト組み込みオブジェクト

オブジェクトロック

ファイバーロックオブジェクト

オペレーティングシステムのロックとは異なり、ファイバーロックは純粋に論理的であり、ロックとロック解除の負荷はほとんどありません。

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 :ブール値。待機するかどうかを指定し、trueの場合に待機します。デフォルトはtrueです。

結果を返す:

  • Boolean 。ロックが正常に取得されたかどうかを返します。trueは正常に取得されたことを意味します

取得メソッドは、ロックの所有権を取得するために使用されます。ロックが取得可能な状態にある場合、このメソッドはすぐにtrueを返します。

ロックが使用できず、ブロッキングがtrueの場合、現在のファイバーはスリープ状態になり、このメソッドは、他のファイバーがロックを解放するとtrueを返します。

ロックが使用できず、ブロッキングがfalseの場合、メソッドはfalseを返します。


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を含む値を返します