private int maxNumEventLoopsCandidate(Endpoint endpoint) {
        for (ToIntFunction<Endpoint> function : maxNumEventLoopsFunctions) {
            final int maxNumEventLoopsCandidate = function.applyAsInt(endpoint);
            if (maxNumEventLoopsCandidate > 0) {
                logger.debug("maxNumEventLoops: {}, for the endpoint: {}", maxNumEventLoopsCandidate, endpoint);
                return maxNumEventLoopsCandidate;
            }
        }
        return 0;
    }
Returns the {@link AbstractEventLoopState} in the map whose key is {@link StateKey}. If the IP address
exists in the specified {@link Endpoint}, it's used in the key to find the
{@link AbstractEventLoopState} first. Then {@link Endpoint#host()} is used.
If {@link AbstractEventLoopState} does not exist in the map, the state is created with the maximum
number of {@link EventLoop}s. The number can be produced by the {@code maxNumEventLoopsFunction} or
{@code maxNumEventLoopsPerEndpoint} and {@code maxNumEventLoopsPerHttp1Endpoint} dependent on
the {@link SessionProtocol} when the {@code maxNumEventLoopsFunction} does not produce a value.
core/src/main/java/com/linecorp/armeria/client/DefaultEventLoopScheduler.java