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

オブジェクトロック

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

オペレーティングシステムのロックとは異なり、ファイバーロックは純粋に論理的に実装されており、ロックとロック解除の負荷は小さいです。

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を返します。

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


release

ロックの所有権を解放する

1
Lock.release();

このメソッドはロックの所有権を解放します。現在のファイバーがロックを所有していない場合、このメソッドはエラーをスローします。


count

現在待機中のタスクの数を照会します

1
Integer Lock.count();

戻り結果:

  • Integer 、タスクの数を返します

toString

オブジェクトの文字列表現を返します。通常は「[NativeObject]」を返します。オブジェクトは、独自の特性に従って再実装できます。

1
String Lock.toString();

戻り結果:

  • String 、オブジェクトの文字列表現を返します

toJSON

オブジェクトのJSON形式の表現を返します。通常、オブジェクトによって定義された読み取り可能な属性のコレクションを返します。

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

呼び出しパラメーター:

  • key :文字列、未使用

戻り結果:

  • Value 、シリアル化可能なJSONを含む値を返します