Spec-Zone.ru › OpenJDK 27

Класс SimpleRelinkableCallSite

java.lang.Object
java.lang.invoke.CallSite
java.lang.invoke.MutableCallSite
jdk.dynalink.support.AbstractRelinkableCallSite
jdk.dynalink.support.SimpleRelinkableCallSite
Все реализуемые интерфейсы:
RelinkableCallSite
public class SimpleRelinkableCallSite extends AbstractRelinkableCallSite
Перепривязываемый сайт вызова, реализующий стратегию мономорфного встроенного кэширования и в любой момент времени связанный только с одним GuardedInvocation. Если проверка этого единственного вызова завершится неудачей, либо его точка переключения будет недействительной, либо сработает его исключение, приводящее к аннулированию, сайт вызова отбросит его и запросит связанную с ним DynamicLinker повторно связать его.
Начиная с:
9

Краткое описание конструкторов

Конструктор Описание
SimpleRelinkableCallSite(CallSiteDescriptor descriptor)
Создает новый сайт вызова со стратегией мономорфного встроенного кэширования.

Краткое описание методов

Модификатор и тип Метод Описание
void relink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
Этот метод будет вызываться динамическим компоновщиком каждый раз при повторной привязке сайта вызова (исключение см. в описании RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)).
void resetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
Этот метод будет вызываться динамическим компоновщиком каждый раз при повторной привязке сайта вызова, и если компоновщик хочет, чтобы сайт вызова отбросил всё предыдущее состояние связывания (этим он отличается от RelinkableCallSite.relink(GuardedInvocation, MethodHandle)).

Методы, объявленные в классе AbstractRelinkableCallSite

getDescriptor, initialize
Модификатор и тип Метод Описание
CallSiteDescriptor getDescriptor()
Возвращает дескриптор этого сайта вызова.
void initialize(MethodHandle relinkAndInvoke)
Вызывается динамическим компоновщиком для инициализации перепривязываемого сайта вызова путем задания дескриптора метода для повторной привязки и вызова.

Методы, объявленные в классе MutableCallSite

dynamicInvoker, getTarget, setTarget, syncAll
Модификатор и тип Метод Описание
final MethodHandle dynamicInvoker()
Создает дескриптор метода, эквивалентный инструкции invokedynamic, связанной с этим сайтом вызова.
final MethodHandle getTarget()
Возвращает целевой метод сайта вызова, который ведет себя как обычное поле MutableCallSite.
void setTarget(MethodHandle newTarget)
Обновляет целевой метод этого сайта вызова как обычную переменную.
static void syncAll(MutableCallSite[] sites)
Выполняет операцию синхронизации для каждого сайта вызова в указанном массиве, заставляя все остальные потоки отбросить любые кэшированные значения, ранее загруженные из целевого метода любого из сайтов вызова.

Методы, объявленные в классе CallSite

type
Модификатор и тип Метод Описание
MethodType type()
Возвращает тип целевого метода этого сайта вызова.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли какой-либо другой объект этому объекту.
protected void finalize()
Устарело и подлежит удалению: этот элемент API может быть удален в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

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) и, наконец, вызвать целевой метод.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API