Home / Class/ MultithreadEventLoopGroup Class — netty Architecture

MultithreadEventLoopGroup Class — netty Architecture

Architecture documentation for the MultithreadEventLoopGroup class in MultithreadEventLoopGroup.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  02964faa_60a4_50b0_5c76_a23d1ca38dbe["MultithreadEventLoopGroup"]
  318ade1d_d675_18cc_ce84_596c6a8fb7d6["MultithreadEventLoopGroup.java"]
  02964faa_60a4_50b0_5c76_a23d1ca38dbe -->|defined in| 318ade1d_d675_18cc_ce84_596c6a8fb7d6
  e809e4dd_9ca8_23ae_93ac_fe303adbfd15["MultithreadEventLoopGroup()"]
  02964faa_60a4_50b0_5c76_a23d1ca38dbe -->|method| e809e4dd_9ca8_23ae_93ac_fe303adbfd15
  d5913bc8_44c9_dfda_b10c_ce3d4d5a65c8["ThreadFactory()"]
  02964faa_60a4_50b0_5c76_a23d1ca38dbe -->|method| d5913bc8_44c9_dfda_b10c_ce3d4d5a65c8
  7699b643_b972_9482_d37e_4636a62bf9aa["EventLoop()"]
  02964faa_60a4_50b0_5c76_a23d1ca38dbe -->|method| 7699b643_b972_9482_d37e_4636a62bf9aa
  476d0c8d_b2a1_04fb_616d_0909b106b66a["ChannelFuture()"]
  02964faa_60a4_50b0_5c76_a23d1ca38dbe -->|method| 476d0c8d_b2a1_04fb_616d_0909b106b66a

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/MultithreadEventLoopGroup.java lines 33–100

public abstract class MultithreadEventLoopGroup extends MultithreadEventExecutorGroup implements EventLoopGroup {

    private static final InternalLogger logger = InternalLoggerFactory.getInstance(MultithreadEventLoopGroup.class);

    private static final int DEFAULT_EVENT_LOOP_THREADS;

    static {
        DEFAULT_EVENT_LOOP_THREADS = Math.max(1, SystemPropertyUtil.getInt(
                "io.netty.eventLoopThreads", NettyRuntime.availableProcessors() * 2));

        if (logger.isDebugEnabled()) {
            logger.debug("-Dio.netty.eventLoopThreads: {}", DEFAULT_EVENT_LOOP_THREADS);
        }
    }

    /**
     * @see MultithreadEventExecutorGroup#MultithreadEventExecutorGroup(int, Executor, Object...)
     */
    protected MultithreadEventLoopGroup(int nThreads, Executor executor, Object... args) {
        super(nThreads == 0 ? DEFAULT_EVENT_LOOP_THREADS : nThreads, executor, args);
    }

    /**
     * @see MultithreadEventExecutorGroup#MultithreadEventExecutorGroup(int, ThreadFactory, Object...)
     */
    protected MultithreadEventLoopGroup(int nThreads, ThreadFactory threadFactory, Object... args) {
        super(nThreads == 0 ? DEFAULT_EVENT_LOOP_THREADS : nThreads, threadFactory, args);
    }

    /**
     * @see MultithreadEventExecutorGroup#MultithreadEventExecutorGroup(int, Executor,
     * EventExecutorChooserFactory, Object...)
     */
    protected MultithreadEventLoopGroup(int nThreads, Executor executor, EventExecutorChooserFactory chooserFactory,
                                     Object... args) {
        super(nThreads == 0 ? DEFAULT_EVENT_LOOP_THREADS : nThreads, executor, chooserFactory, args);
    }

    @Override
    protected ThreadFactory newDefaultThreadFactory() {
        return new DefaultThreadFactory(getClass(), Thread.MAX_PRIORITY);
    }

    @Override
    public EventLoop next() {
        return (EventLoop) super.next();
    }

    @Override
    protected abstract EventLoop newChild(Executor executor, Object... args) throws Exception;

    @Override
    public ChannelFuture register(Channel channel) {
        return next().register(channel);
    }

    @Override
    public ChannelFuture register(ChannelPromise promise) {
        return next().register(promise);
    }

    @Deprecated
    @Override
    public ChannelFuture register(Channel channel, ChannelPromise promise) {
        return next().register(channel, promise);
    }

}

Frequently Asked Questions

What is the MultithreadEventLoopGroup class?
MultithreadEventLoopGroup is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/MultithreadEventLoopGroup.java.
Where is MultithreadEventLoopGroup defined?
MultithreadEventLoopGroup is defined in transport/src/main/java/io/netty/channel/MultithreadEventLoopGroup.java at line 33.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free