@rkapsi oversight... let me fix it.
 Fixed by https://github.com/netty/netty/pull/5782

DefaultEventLoopGroup doesn't expose ctor variant that accepts custom Executor
The `DefaultEventLoopGroup` class extends `MultithreadEventExecutorGroup` but doesn't expose the ctor variants that accept a custom Executor like `NioEventLoopGroup` and `EpollEventLoopGroup` do.

Is that on purpose or just an oversight?

transport/src/main/java/io/netty/channel/DefaultEventLoopGroup.java
transport/src/main/java/io/netty/channel/DefaultEventLoopGroup.java
diff --git a/transport/src/main/java/io/netty/channel/DefaultEventLoopGroup.java b/transport/src/main/java/io/netty/channel/DefaultEventLoopGroup.java
index 6e8ba13452f..ee5eeea6418 100644
--- a/transport/src/main/java/io/netty/channel/DefaultEventLoopGroup.java
+++ b/transport/src/main/java/io/netty/channel/DefaultEventLoopGroup.java
@@ -36,7 +36,7 @@ public DefaultEventLoopGroup() {
      * @param nThreads          the number of threads to use
      */
     public DefaultEventLoopGroup(int nThreads) {
-        this(nThreads, null);
+        this(nThreads, (ThreadFactory) null);
     }
 
     /**
@@ -49,6 +49,16 @@ public DefaultEventLoopGroup(int nThreads, ThreadFactory threadFactory) {
         super(nThreads, threadFactory);
     }
 
+    /**
+     * Create a new instance
+     *
+     * @param nThreads          the number of threads to use
+     * @param executor          the Executor to use, or {@code null} if the default should be used.
+     */
+    public DefaultEventLoopGroup(int nThreads, Executor executor) {
+        super(nThreads, executor);
+    }
+
     @Override
     protected EventLoop newChild(Executor executor, Object... args) throws Exception {
         return new DefaultEventLoop(this, executor);
