オブジェクトロック
ファイバーロックオブジェクト
オペレーティングシステムのロックとは異なり、ファイバーロックは純粋に論理的に実装されており、ロックとロック解除の負荷はわずかです。
1
2
3
4var l = new coroutine.Lock();
l.acquire();
.....
l.release();
継承
コンストラクタ
Lock
コンストラクタ
1new Lock();
メンバー関数
acquire
ロックの所有権を取得する
1Boolean Lock.acquire(Boolean blocking = true);
呼び出しパラメーター:
- blocking:ブール値、待機するかどうかを指定します。trueの場合、待機します。デフォルトはtrueです。
戻り結果:
- Boolean、ロックが正常に取得されたかどうかを返します。trueは取得が成功したことを意味します
取得メソッドは、ロックの所有権を取得するために使用されます。ロックが取得可能な状態にある場合、このメソッドはすぐにtrueを返します。
ロックが使用できず、ブロッキングがtrueの場合、現在のファイバーはスリープ状態になります。他のファイバーがロックを解除すると、このメソッドはtrueを返します。
ロックが使用できず、ブロッキングがfalseの場合、メソッドはfalseを返します。
release
ロックの所有権を解放する
1Lock.release();
このメソッドはロックの所有権を解放します。現在のファイバーがロックを所有していない場合、このメソッドはエラーをスローします。
count
現在待機中のタスクの数を照会する
1Integer Lock.count();
戻り結果:
- Integer、タスクの数を返します
toString
オブジェクトの文字列表現を返します。通常は「[NativeObject]」を返します。オブジェクトは、独自の特性に従って再実装できます。
1String Lock.toString();
戻り結果:
- String、オブジェクトの文字列表現を返します
toJSON
オブジェクトのJSON形式の表現を返します。通常、オブジェクトによって定義された読み取り可能な属性のコレクションを返します。
1Value Lock.toJSON(String key = "");
呼び出しパラメーター:
- key:文字列、未使用
戻り結果:
- Value、シリアル化可能なJSONを含む値を返します