Home / cs-notes / Architecture / Components / Netty / EventLoop / Hierarchy
@startuml
package java.util.concurrent {
interface ScheduledExecutorService
interface ExecutorService
interface Executor
ScheduledExecutorService -up-|> ExecutorService
ExecutorService -up-|> Executor
AbstractExecutorService .up.|> ExecutorService
}
package io.netty.util.concurrent {
interface OrderedEventExecutor
interface EventExecutor
interface EventExecutorGroup
OrderedEventExecutor -up-|> EventExecutor
EventExecutor -up-|> EventExecutorGroup
MultithreadEventExecutorGroup -up-|> AbstractEventExecutorGroup
AbstractEventExecutorGroup .up.|> EventExecutorGroup
EventExecutorGroup -up-|> ScheduledExecutorService
}
' SingleThread
package io.netty.util.concurrent {
SingleThreadEventExecutor .up.|> OrderedEventExecutor
SingleThreadEventExecutor -up-|> AbstractScheduledEventExecutor
AbstractScheduledEventExecutor -up-|> AbstractEventExecutor
AbstractEventExecutor -up-|> AbstractExecutorService
AbstractEventExecutor .up.|> EventExecutor
}
package io.netty.channel {
interface EventLoop
interface EventLoopGroup
EventLoop -up-|> EventLoopGroup
EventLoop .up.|> OrderedEventExecutor
EventLoopGroup -up-|> EventExecutorGroup
MultithreadEventLoopGroup .up.|> EventLoopGroup
MultithreadEventLoopGroup -up-|> MultithreadEventExecutorGroup
SingleThreadEventLoop .up.|> EventLoop
SingleThreadEventLoop -up-|> SingleThreadEventExecutor
}
package io.netty.channel.nio {
NioEventLoopGroup -up-|> MultithreadEventLoopGroup
NioEventLoop -up-|> SingleThreadEventLoop
}
@enduml