13.4. ClusteredLock インターフェース


実験的な としてマーク されている ClusteredLock インターフェースは、クラスター化されたロックを実装するインターフェースです。

@Experimental
public interface ClusteredLock {

   CompletableFuture<Void> lock();

   CompletableFuture<Boolean> tryLock();

   CompletableFuture<Boolean> tryLock(long time, TimeUnit unit);

   CompletableFuture<Void> unlock();

   CompletableFuture<Boolean> isLocked();

   CompletableFuture<Boolean> isLockedByMe();
}
Copy to Clipboard Toggle word wrap
  • lock : ロックを取得します。ロックが利用できない場合は、ロックを取得するまでブロックを呼び出します。現在、ロックリクエストが失敗するまでに最大時間が指定されていない ため、スレッドが不足する可能性があります。
  • tryLock は、呼び出し時に空きがある場合にのみロックを取得し、その場合は true を返します。この方法では、ロックの取り組みをブロック(または待機)しません。
  • tryLock(long time, TimeUnit unit) ロックが利用可能な場合は、このメソッドが true ですぐに返されます。ロックが使用できない場合、呼び出しは以下のように待機します。

    • ロックが取得されます。
    • 指定された待機時間の経過

時間がゼロ以下である場合、メソッドは全く待機しません。

  • unlock

ロックを解放します。ロックのホルダーのみがロックを解放できます。

  • ロックがロックされ、ロックがリリースされると false の場合は isLocked Returns true になります。
  • isLockedByMe Returns true: ロックが呼び出し元によって所有され、ロックが他の人またはリリースされると false になります。

13.4.1. 使用例

  EmbeddedCache cm = ...;
  ClusteredLockManager cclm = EmbeddedClusteredLockManagerFactory.from(cm);

  lock.tryLock()
    .thenCompose(result -> {
       if (result) {
        try {
            // manipulate protected state
            } finally {
               return lock.unlock();
            }
       } else {
          // Do something else
       }
    });
 }
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る