Module  jdk.dynalink
软件包  jdk.dynalink.support

Class ChainedCallSite

  • All Implemented Interfaces:
    RelinkableCallSite


    public class ChainedCallSite
    extends AbstractRelinkableCallSite
    实现多态内联缓存策略的可重新链接的调用站点。 它记住多达8个GuardedInvocation它被链接,并且每个重新链接请求构建一个回调到下一个调用的一个方法句柄的级联链。 可以通过在子类中覆盖getMaxChainLength()来定制记忆调用的数量。 当这个调用站点重新链接一个新的调用,并且链的长度已经在最大值时,它将丢弃最旧的调用。 无效的切换点的调用和其无效异常触发的调用从链中热切地删除。 调用从不重新排序; 最近链接的方法句柄始终处于链的开头,最后连接在最后。 呼叫站点可以同时安全地重新链接多个线程。 链接中的种族条件通过丢弃在丢失的线程上生成的GuardedInvocation而不将其并入到链中来解决,因此它可以导致相同参数的重复链接。
    • 构造方法详细信息

      • ChainedCallSite

        public ChainedCallSite​(CallSiteDescriptor descriptor)
        创建一个新的链接呼叫站点。
        参数
        descriptor - 呼叫站点的描述符。