Класс 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 |
Создает новый сайт вызова со стратегией мономорфного встроенного кэширования. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
relink |
Этот метод будет вызываться динамическим компоновщиком каждый раз при повторной привязке сайта вызова (исключение см. в описании RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)). |
void |
resetAndRelink |
Этот метод будет вызываться динамическим компоновщиком каждый раз при повторной привязке сайта вызова, и если компоновщик хочет, чтобы сайт вызова отбросил всё предыдущее состояние связывания (этим он отличается от RelinkableCallSite.relink(GuardedInvocation, MethodHandle)). |
Методы, объявленные в классе AbstractRelinkableCallSite
getDescriptor, initialize | Модификатор и тип | Метод | Описание |
|---|---|---|
CallSiteDescriptor |
getDescriptor() |
Возвращает дескриптор этого сайта вызова. |
void |
initialize |
Вызывается динамическим компоновщиком для инициализации перепривязываемого сайта вызова путем задания дескриптора метода для повторной привязки и вызова. |
Методы, объявленные в классе MutableCallSite
dynamicInvoker, getTarget, setTarget, syncAll | Модификатор и тип | Метод | Описание |
|---|---|---|
final MethodHandle |
dynamicInvoker() |
Создает дескриптор метода, эквивалентный инструкции invokedynamic, связанной с этим сайтом вызова. |
final MethodHandle |
getTarget() |
Возвращает целевой метод сайта вызова, который ведет себя как обычное поле MutableCallSite. |
void |
setTarget |
Обновляет целевой метод этого сайта вызова как обычную переменную. |
static void |
syncAll |
Выполняет операцию синхронизации для каждого сайта вызова в указанном массиве, заставляя все остальные потоки отбросить любые кэшированные значения, ранее загруженные из целевого метода любого из сайтов вызова. |
Методы, объявленные в классе CallSite
type | Модификатор и тип | Метод | Описание |
|---|---|---|
MethodType |
type() |
Возвращает тип целевого метода этого сайта вызова. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова notify или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие вызова 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)и, наконец, вызвать целевой метод.
© 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.