クラスSimpleRelinkableCallSite

すべての実装されたインタフェース:
RelinkableCallSite

public class SimpleRelinkableCallSite extends AbstractRelinkableCallSite
単相インライン・キャッシュ戦略を実装する再リンク可能なコール・サイトであり、常に単一のGuardedInvocationにのみリンクされます。 その1回の呼出しのガードが失敗した場合、無効化されたスイッチ・ポイントがある場合、または無効な例外がトリガーされた場合、コール・サイトはそれを破棄し、関連するDynamicLinkerに再リンクするように要求します。
導入されたバージョン:
9
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    単相インライン・キャッシュ方式で新しいコール・サイトを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    relink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
    このメソッドは、呼び出しサイトが再リンクされるたびに動的リンカーによって呼び出されます。(例外についてはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)を参照してください)。
    void
    resetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
    このメソッドは、コール・サイトが再リンクされるたびにダイナミック・リンカーによって呼び出され、リンカーはコール・サイトが以前のリンケージ・ステート(それはRelinkableCallSite.relink(GuardedInvocation, MethodHandle)とどのように違うのですか?)を破棄することを望みます。

    クラスで宣言されたメソッド AbstractRelinkableCallSite

    getDescriptor, initialize
    修飾子と型
    メソッド
    説明
    このコール・サイトの記述子を返します。
    void
    initialize(MethodHandle relinkAndInvoke)
    再リンクおよび呼出しメソッド・ハンドルを設定して、再リンク可能コール・サイトを初期化するために動的リンカーによって呼び出されます。

    クラスで宣言されたメソッド MutableCallSite

    dynamicInvoker, getTarget, setTarget, syncAll
    修飾子と型
    メソッド
    説明
    このコール・サイトにリンクされているinvokedynamic命令と同等のメソッド・ハンドルを生成します。
    コール・サイトのターゲット・メソッドを返しますが、これは、MutableCallSiteの通常のフィールドのように振る舞います。
    void
    このコール・サイトのターゲット・メソッドを通常の変数として更新します。
    static void
    指定された配列内のコール・サイトごとに同期処理を実行しますが、その際、いずれかのコール・サイトのターゲットから以前にロードされたキャッシュ値をすべて破棄することを、ほかのすべてのスレッドに対して強制します。

    クラスで宣言されたメソッド CallSite

    type
    修飾子と型
    メソッド
    説明
    このコール・サイトのターゲットの型を返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • SimpleRelinkableCallSite

      public SimpleRelinkableCallSite(CallSiteDescriptor descriptor)
      単相インライン・キャッシュ方式で新しいコール・サイトを作成します。
      パラメータ:
      descriptor - この呼び出しサイトの記述子
  • メソッドの詳細

    • relink

      public void relink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
      インタフェース: RelinkableCallSiteからコピーされた説明
      このメソッドは、呼び出しサイトが再リンクされるたびに動的リンカーによって呼び出されます。(例外についてはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)を参照してください)。 コール・サイトがターゲット・メソッド・ハンドルに組み込む必要があるGuardedInvocationが渡されます。 このメソッドが呼び出されると、コール・サイトは、多相インライン・キャッシュの実装のために他の非検証呼出しを保持し、それらをこの呼出しで構成して最終ターゲットを形成できます。
      パラメータ:
      guardedInvocation - コール・サイトがターゲット・メソッド・ハンドルに組み込む必要があるガード付き呼出し。
      relinkAndInvoke - 再リンクおよび呼出しメソッド・ハンドル。 これは、DynamicLinkerによってコールバックとして提供されるコール・サイトのメソッド・タイプと一致するメソッド・ハンドルです。 このコール・サイトでは、渡された引数でターゲットを起動できない場合、最終的なフォールバックとして使用する必要があります。 フォールバック・メソッドは、コール時に、その呼出しに対して適切なターゲットGuardedInvocationを取得し、その後RelinkableCallSite.relink(GuardedInvocation, MethodHandle)またはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)を起動し、最後にターゲットを起動するようなものです。
    • resetAndRelink

      public void resetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
      インタフェース: RelinkableCallSiteからコピーされた説明
      このメソッドは、コール・サイトが再リンクされるたびにダイナミック・リンカーによって呼び出され、リンカーはコール・サイトが以前のリンケージ・ステート(それはRelinkableCallSite.relink(GuardedInvocation, MethodHandle)とどのように違うのですか?)を破棄することを望みます。 コール・サイトが新しいターゲット・メソッド・ハンドルの構築に使用するGuardedInvocationが渡されます。 このメソッドが呼び出されると、コール・サイトは以前の状態を保持しないことを推奨され、現在の呼出しのみをリンクします。
      パラメータ:
      guardedInvocation - コール・サイトがターゲット・メソッド・ハンドルの構築に使用するガード付き呼出し。
      relinkAndInvoke - 再リンクおよび呼出しメソッド・ハンドル。 これは、DynamicLinkerによってコールバックとして提供されるコール・サイトのメソッド・タイプと一致するメソッド・ハンドルです。 このコール・サイトでは、渡された引数でターゲットを起動できない場合、最終的なフォールバックとして使用する必要があります。 フォールバック・メソッドは、コール時に、その呼出しに対して適切なターゲットGuardedInvocationを取得し、その後RelinkableCallSite.relink(GuardedInvocation, MethodHandle)またはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)を起動し、最後にターゲットを起動するようなものです。